我有一个数据框,其日期列 Headers 为'End_Date' . 我想添加一个新列'Start_Date'来计算前一个'End_Date'之后的那一天 . 例如:
End_Date <-as.Date(c("2010-11-01", "2010-11-18", "2010-11-26"))
dates <-data.frame(End_Date)
在此示例中,新列“开始日期”如下所示:date $ Start_Date <-as.Date(c(NA,“2010-11-02”,“2010-11-19”))
我尝试过使用sapply,但是收到一条错误,指出新列的行数太少:
dates$Start_Date <-sapply(2:nrow(dates),
function(i) (dates$End_Date[i]-dates$End_Date[i-1]))
在这里,我创建了一个只有3行的数据框,但我需要解决方案,我可以应用于具有大量行的数据帧 .
1 回答
尝试:
或者正如理查德在评论中建议的那样,一个更好的方法是: