如何在 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

更新於: 2020-11-23

378 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.