正如@Phil在评论中指出的那样,dplyr包中有一个滞后函数。首先,让我们用你尝试的方式来解决它。您得到了一个错误,因为您刚刚在矢量(df列(的开头添加了一个项。这使得它比原始数据帧本身(或其他列,也称为向量(长一项,因此您必须删除最后一个值以保持原始长度:
在尝试为自变量创建滞后列时,出现以下错误。
ML$AML1<-c(NA,ML$AML)
Error in `$<-.data.frame`(`*tmp*`, AML1, value = c(NA, 4.66, 4.81, 4.72, :
replacement has 11 rows, data has 10
有人能帮我在这里编码吗?
ML$AML1 <- c(NA, ML$AML[1:(nrow(ML)-1)])
# you could use length(ML$AML) instead of nrow(ML)
现在dplyr方式:
library(dplyr)
dplyr::mutate(ML, AML1 = dplyr::lag(AML))