lag没有像我预期的那样工作
a<-c(0,1,2,3,4,5,6,7,8)
a
## [1] 0 1 2 3 4 5 6 7 8
lag(a,k=1)
## [1] 0 1 2 3 4 5 6 7 8
## attr(,"tsp")
## [1] 0 8 1我想我会得到:
0 0 1 2 3 4 5 6 7 或
1 2 3 4 5 6 7 8 0我做错了什么?
发布于 2015-01-16 20:04:58
您应该使用Hmisc包中的Lag:
library(Hmisc)
Lag(c(0,1,2,3,4,5,6,7,8), shift = 1)
# [1] NA 0 1 2 3 4 5 6 7发布于 2015-01-16 20:06:57
data.table::shift是另一个:
library(data.table)
a <- c(0, 1, 2, 3, 4, 5, 6, 7, 8)
shift(a)
#[1] NA 0 1 2 3 4 5 6 7在zoo库中使用base::lag的另一种方式:
library(zoo)
a <- zoo(c(0, 1, 2, 3, 4, 5, 6, 7, 8)) #convert to zoo所以:
lag(a, 1, na.pad = TRUE)
# 1 2 3 4 5 6 7 8 9
# 1 2 3 4 5 6 7 8 NA 或者:
lag(a, -1, na.pad = TRUE)
# 1 2 3 4 5 6 7 8 9
#NA 0 1 2 3 4 5 6 7 你可以用一个as.vector包住它来去掉索引。
发布于 2015-01-16 20:16:22
实际上,
我最终选择了这个:
c(a[-1],0)做我想做的事
https://stackoverflow.com/questions/27983331
复制相似问题