【发布时间】:2015-07-17 15:44:04
【问题描述】:
假设我有以下数据框:
df <- data.frame("yearmonth"=c("2005-01","2005-02","2005-03","2005-01","2005-02","2005-03"),"state"=c(1,1,1,2,2,2),"county"=c(3,3,3,3,3,3),"unemp"=c(4.0,3.6,1.4,3.7,6.5,5.4))
我试图在每个独特的州-县组合中创建失业滞后。我想结束这个:
df2 <- data.frame("yearmonth"=c("2005-01","2005-02","2005-03","2005-01","2005-02","2005-03"),"state"=c(1,1,1,2,2,2),"county"=c(3,3,3,3,3,3),"unemp"=c(4.0,3.6,1.4,3.7,6.5,5.4),"unemp_lag"=c(NA,4.0,3.6,NA,3.7,6.5))
现在,想象一下这种情况,除了数以千计不同的县-州组合和几年。我尝试使用 lag 函数 zoo.lag 函数,但我无法让它考虑到州县代码。 一种可能性是制作一个巨大的 for 循环,但我认为这是太多的数据(R 不能很好地处理 for 循环),我正在寻找一种更清洁的方法来做到这一点。 有任何想法吗?谢谢!
【问题讨论】:
-
df$unemp_lag <- lag(df$unemp)但您的数据样本仅包含县 3,很难想象按county分组。前面的代码应该添加到类似group_by(county)
标签: r time-series lag zoo