3 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
解決此問(wèn)題的另一種方法是使用zoo軟件包,該軟件包具有一個(gè)滯后方法,該結(jié)果將用NA填充結(jié)果:
require(zoo)
> set.seed(123)
> x <- zoo(sample(c(1:9), 10, replace = T))
> y <- lag(x, -1, na.pad = TRUE)
> cbind(x, y)
x y
1 3 NA
2 8 3
3 4 8
4 8 4
5 9 8
6 1 9
7 5 1
8 9 5
9 5 9
10 5 5
結(jié)果是一個(gè)多元?jiǎng)游飯@對(duì)象(這是一個(gè)增強(qiáng)的矩陣),但可以通過(guò)以下方式輕松轉(zhuǎn)換為data.frame
> data.frame(cbind(x, y))

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
我有同樣的問(wèn)題,但是我不想使用zoo或xts,所以我為數(shù)據(jù)幀編寫了一個(gè)簡(jiǎn)單的滯后函數(shù):
lagpad <- function(x, k) {
if (k>0) {
return (c(rep(NA, k), x)[1 : length(x)] );
}
else {
return (c(x[(-k+1) : length(x)], rep(NA, -k)));
}
}
這可能會(huì)滯后或滯后:
x<-1:3;
(cbind(x, lagpad(x, 1), lagpad(x,-1)))
x
[1,] 1 NA 2
[2,] 2 1 3
[3,] 3 2 NA
- 3 回答
- 0 關(guān)注
- 699 瀏覽
添加回答
舉報(bào)