試圖滯後中的R可變,但它不工作。
x<-1:10
y=lag(x,1)
xy=cbind(x,y)
View(xy)
x y
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
10 10 10
我還沒有得到滯後。我究竟做錯了什麼?還有沒有使用cbind/rbind的更快的方法來結合向量/矩陣?例如
x=0:10
y=20:30
newxy=[x,y]
謝謝!
試圖滯後中的R可變,但它不工作。
x<-1:10
y=lag(x,1)
xy=cbind(x,y)
View(xy)
x y
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
10 10 10
我還沒有得到滯後。我究竟做錯了什麼?還有沒有使用cbind/rbind的更快的方法來結合向量/矩陣?例如
x=0:10
y=20:30
newxy=[x,y]
謝謝!
lag()
需要一個時間序列。 (在R中,class「ts」是基本的時間序列類,用於表示在等時間點採樣的數據。更多信息請參見?ts
。)因此,您可以將x轉換爲時間序列,如此處所示,或者使用其他答案中建議的方法之一。
x <- as.ts(1:10)
y <- lag(x,1)
xy <- cbind(x,y)
xy
#Time Series:
#Start = 0
#End = 10
#Frequency = 1
# x y
# 0 NA 1
# 1 1 2
# 2 2 3
# 3 3 4
# 4 4 5
# 5 5 6
# 6 6 7
# 7 7 8
# 8 8 9
# 9 9 10
#10 10 NA
對於第二部分:
newxy=matrix(c(x,y),ncol=2)
> newxy
[,1] [,2]
[1,] 0 20
[2,] 1 21
[3,] 2 22
[4,] 3 23
[5,] 4 24
[6,] 5 25
[7,] 6 26
[8,] 7 27
[9,] 8 28
[10,] 9 29
[11,] 10 30
embed
這裏是一個有用的功能,特別是如果你不想轉換爲ts
對象。
x <- 1:10
embed(x,2)
[,1] [,2]
[1,] 2 1
[2,] 3 2
[3,] 4 3
[4,] 5 4
[5,] 6 5
[6,] 7 6
[7,] 8 7
[8,] 9 8
[9,] 10 9
你可以在另一個問題中找到答案:http://stackoverflow.com/questions/3558988/basic-lag-in-r-vector-dataframe – AndreyAkinshin