R向量/数据帧中的基本滞后

很有可能会暴露出我是R的新手,但是在SPSS中,运行时滞非常容易。显然这是用户错误,但是我缺少什么呢?


x <- sample(c(1:9), 10, replace = T)

y <- lag(x, 1)

ds <- cbind(x, y)

ds

结果是:


      x y

 [1,] 4 4

 [2,] 6 6

 [3,] 3 3

 [4,] 4 4

 [5,] 3 3

 [6,] 5 5

 [7,] 8 8

 [8,] 9 9

 [9,] 3 3

[10,] 7 7

我想我会看到:


     x y

 [1,] 4 

 [2,] 6 4

 [3,] 3 6

 [4,] 4 3

 [5,] 3 4

 [6,] 5 3

 [7,] 8 5

 [8,] 9 8

 [9,] 3 9

[10,] 7 3

任何指导将不胜感激。


开心每一天1111
浏览 664回答 3
3回答

红颜莎娜

解决此问题的另一种方法是使用zoo软件包,该软件包具有一个滞后方法,该结果将用NA填充结果:require(zoo)> set.seed(123)> x <- zoo(sample(c(1:9), 10, replace = T))> y <- lag(x, -1, na.pad = TRUE)> cbind(x, y)&nbsp; &nbsp;x&nbsp; y1&nbsp; 3 NA2&nbsp; 8&nbsp; 33&nbsp; 4&nbsp; 84&nbsp; 8&nbsp; 45&nbsp; 9&nbsp; 86&nbsp; 1&nbsp; 97&nbsp; 5&nbsp; 18&nbsp; 9&nbsp; 59&nbsp; 5&nbsp; 910 5&nbsp; 5结果是一个多元动物园对象(这是一个增强的矩阵),但可以通过以下方式轻松转换为data.frame> data.frame(cbind(x, y))

墨色风雨

我有同样的问题,但是我不想使用zoo或xts,所以我为数据帧编写了一个简单的滞后函数:lagpad <- function(x, k) {&nbsp; if (k>0) {&nbsp; &nbsp; return (c(rep(NA, k), x)[1 : length(x)] );&nbsp; }&nbsp; else {&nbsp; &nbsp; return (c(x[(-k+1) : length(x)], rep(NA, -k)));&nbsp; }}这可能会滞后或滞后:x<-1:3;(cbind(x, lagpad(x, 1), lagpad(x,-1)))&nbsp; &nbsp; &nbsp;x&nbsp; &nbsp; &nbsp;&nbsp;[1,] 1 NA&nbsp; 2[2,] 2&nbsp; 1&nbsp; 3[3,] 3&nbsp; 2 NA
打开App,查看更多内容
随时随地看视频慕课网APP