将数据帧的列转换为R中的时间序列对象后,如何提取其名称的数据帧?

要访问R中的数据帧的列,我们只需要使用$符号,但是如果将数据帧转换为时间序列对象,则所有列都将表现为时间序列,因此,我们不能简单地使用$符号。为此,我们将需要使用单个方括号并在其中传递适当的列。查看以下示例以了解其工作原理。

例子1

请看以下数据帧:

> set.seed(147)
> x1<-rpois(20,5)
> x2<-rpois(20,8)
> x3<-rpois(20,3)
> df1<-data.frame(x1,x2,x3)
> df1

输出结果

x1 x2 x3
1 5 11 4
2 5 5 3
3 4 6 2
4 10 8 1
5 4 6 3
6 4 9 3
7 9 7 4
8 4 4 1
9 3 8 6
10 5 9 2
11 4 13 2
12 4 6 3
13 6 5 2
14 8 10 3
15 1 10 3
16 5 9 3
17 7 8 6
18 7 5 0
19 4 8 2
20 5 5 7

将df1转换为时间序列对象:

示例

> df1_time_series<-ts(df1)
> df1_time_series
Time Series:
Start = 1
End = 20
Frequency = 1

输出结果

x1 x2 x3
1 5 11 4
2 5 5 3
3 4 6 2
4 10 8 1
5 4 6 3
6 4 9 3
7 9 7 4
8 4 4 1
9 3 8 6
10 5 9 2
11 4 13 2
12 4 6 3
13 6 5 2
14 8 10 3
15 1 10 3
16 5 9 3
17 7 8 6
18 7 5 0
19 4 8 2
20 5 5 7

提取上述时间序列的列:

示例

> df1_time_series[,"x1"]
Time Series:
Start = 1
End = 20
Frequency = 1

输出结果

[1] 5 5 4 10 4 4 9 4 3 5 4 4 6 8 1 5 7 7 4 5

示例

> df1_time_series[,"x2"]
Time Series:
Start = 1
End = 20
Frequency = 1

输出结果

[1] 11 5 6 8 6 9 7 4 8 9 13 6 5 10 10 9 8 5 8 5

示例

> df1_time_series[,"x3"]
Time Series:
Start = 1
End = 20
Frequency = 1

输出结果

[1] 4 3 2 1 3 3 4 1 6 2 2 3 2 3 3 3 6 0 2 7

例2

> y1<-rnorm(20,1,0.25)
> y2<-rnorm(20,1,0.078)
> y3<-rnorm(20,1,0.045)
> y4<-rnorm(20,1,0.65)
> df2<-data.frame(y1,y2,y3,y4)
> df2

输出结果

       y1       y2        y3       y4
1 0.4610082 1.1123116 0.9937312 1.60152771
2 1.2245278 1.1441032 0.9955816 1.01301470
3 0.9281928 0.9471151 1.0130205 1.73380614
4 0.6132334 0.9914514 1.0478584 1.12878115
5 0.8047991 0.9364563 1.0559170 0.11453683
6 1.3873896 0.9890774 0.8793818 1.08303443
7 0.8734964 0.9923517 1.0456627 1.40754764
8 0.5829787 1.1520386 1.0679080 -0.06112731
9 0.7886331 1.2120417 1.0131238 1.12503045
10 1.4817215 1.1045179 0.9894544 1.00392323
11 1.1166086 0.9957914 0.9241877 0.37224585
12 1.0734553 1.0714675 1.0013594 0.46353553
13 1.0378841 0.9814108 1.0169206 1.57986107
14 0.5939274 0.9737219 1.0043724 0.17741973
15 1.1111737 0.9444893 1.0601156 0.96969383
16 1.2379935 0.9730605 1.0632339 0.39235006
17 1.2920541 0.8550713 0.9872660 0.42308594
18 0.7378359 1.0077608 1.0571702 1.34754960
19 0.7497949 0.9085073 1.0041391 1.04504683
20 1.0315004 1.1117264 0.9580732 1.13297488

示例

> df2_ts<-ts(df2)
> df2_ts
Time Series:
Start = 1
End = 20
Frequency = 1

输出结果

     y1          y2        y3       y4
1 0.4610082 1.1123116 0.9937312 1.60152771
2 1.2245278 1.1441032 0.9955816 1.01301470
3 0.9281928 0.9471151 1.0130205 1.73380614
4 0.6132334 0.9914514 1.0478584 1.12878115
5 0.8047991 0.9364563 1.0559170 0.11453683
6 1.3873896 0.9890774 0.8793818 1.08303443
7 0.8734964 0.9923517 1.0456627 1.40754764
8 0.5829787 1.1520386 1.0679080 -0.06112731
9 0.7886331 1.2120417 1.0131238 1.12503045
10 1.4817215 1.1045179 0.9894544 1.00392323
11 1.1166086 0.9957914 0.9241877 0.37224585
12 1.0734553 1.0714675 1.0013594 0.46353553
13 1.0378841 0.9814108 1.0169206 1.57986107
14 0.5939274 0.9737219 1.0043724 0.17741973
15 1.1111737 0.9444893 1.0601156 0.96969383
16 1.2379935 0.9730605 1.0632339 0.39235006
17 1.2920541 0.8550713 0.9872660 0.42308594
18 0.7378359 1.0077608 1.0571702 1.34754960
19 0.7497949 0.9085073 1.0041391 1.04504683
20 1.0315004 1.1117264 0.9580732 1.13297488

示例

> df2_ts[,"y1"]
Time Series:
Start = 1
End = 20
Frequency = 1

输出结果

[1]  0.4610082 1.2245278 0.9281928 0.6132334 0.8047991 1.3873896 0.8734964
[8]  0.5829787 0.7886331 1.4817215 1.1166086 1.0734553 1.0378841 0.5939274
[15] 1.1111737 1.2379935 1.2920541 0.7378359 0.7497949 1.0315004

示例

> df2_ts[,"y2"]
Time Series:
Start = 1
End = 20
Frequency = 1

输出结果

[1] 1.1123116 1.1441032 0.9471151 0.9914514 0.9364563 0.9890774 0.9923517
[8] 1.1520386 1.2120417 1.1045179 0.9957914 1.0714675 0.9814108 0.9737219
[15] 0.9444893 0.9730605 0.8550713 1.0077608 0.9085073 1.1117264

示例

> df2_ts[,"y3"]
Time Series:
Start = 1
End = 20
Frequency = 1

输出结果

[1] 0.9937312 0.9955816 1.0130205 1.0478584 1.0559170 0.8793818 1.0456627
[8] 1.0679080 1.0131238 0.9894544 0.9241877 1.0013594 1.0169206 1.0043724
[15] 1.0601156 1.0632339 0.9872660 1.0571702 1.0041391 0.9580732

示例

> df2_ts[,"y4"]
Time Series:
Start = 1
End = 20
Frequency = 1

输出结果

[1]  1.60152771 1.01301470 1.73380614 1.12878115 0.11453683 1.08303443
[7]  1.40754764 -0.06112731 1.12503045 1.00392323 0.37224585 0.46353553
[13] 1.57986107 0.17741973 0.96969383 0.39235006 0.42308594 1.34754960
[19] 1.04504683 1.13297488