我有这样的一些数据:
sample.data <- rbind(data.table(start.date=seq(from=as.Date("2010-01-01"), to=as.Date("2014-12-01"), by="quarter"),
Group=c("A","B","C","D"), rnorm(20, 5)),
data.table(start.date=seq(from=as.Date("2010-01-01"), to=as.Date("2014-12-01"), by="quarter"),
Group=c("A","B","C","D"), rnorm(20, 3))
)
我想要创建一个名为
end.date
的列,该列等于每个分组中下一个最早的start.date
值。例如,对于
Group==A
的第一个start.date
是2010-01-01
。对于Group==A
的下一个最早的start.date
是2011-01-01
。因此,在按Group
排序时,最终结果应如下所示: start.date Group end.date
2010-01-01 A 2011-01-01
2010-01-01 A 2011-01-01
2011-01-01 A 2012-01-01
2011-01-01 A 2012-01-01
2012-01-01 A 2013-01-01
2012-01-01 A 2013-01-01
2013-01-01 A 2014-01-01
2013-01-01 A 2014-01-01
2014-01-01 A NA
2014-01-01 A NA
2010-04-01 B 2011-04-01
2010-04-01 B 2011-04-01
2011-04-01 B 2012-04-01
2011-04-01 B 2012-04-01
等等。理想情况下,我希望能够通过参考来完成这个过程,就像
sample.data [,end.date:= EXPRESSION]
但我不知道从哪里开始。谢谢任何帮助。
data.table
功能需要学习。这是包的新添加吗? - moman822