我想滞后于组数据,发现了一些代码。
首先是plm软件包,它易于使用和工作。
但是,我不知道为什么dplyr / hmisc / data表代码对我的数据不起作用。 (dplyr代码来源:Lag colum by group in dplyr,该代码适用于他们的示例,但不适用于我的数据。)
library(plm)###success code
x=pdata.frame(x)
f=cbind(x,lagScore=lag(x$test.logHMscore))
library(dplyr)###fail1
fff=x%>% group_by(test.ISO.Code) %>% mutate(laghs = dplyr::lag(test.logHMscore, n = 1, default = NA))
library(Hmisc)###fail2
fff=x %>%
arrange(test.ISO.Code,test.Year) %>%
group_by(test.ISO.Code) %>%
mutate(a =Lag( test.logHMscore),shift=1)
library(data.table)###fail3
fff=x %>%
arrange(test.ISO.Code,test.Year) %>%
group_by(test.ISO.Code) %>%
mutate(a =shift( test.logHMscore))
##my data
x <- wrapr::build_frame(
"test.ISO.Code" , "test.Year", "test.logHMscore"
"ALB" , 2008L , 2.015
"ALB" , 2009L , 2.026
"ALB" , 2010L , 2.022
"DZA" , 2008L , 1.64
"DZA" , 2009L , 1.641
"DZA" , 2010L , 1.637
"AGO" , 2008L , 1.574
"AGO" , 2009L , 1.65
"AGO" , 2010L , 1.656
谢谢