在R中填充日期对象增加的数据框

时间:2017-08-23 09:39:50

标签: r loops date for-loop

我似乎无法想出以下内容。

我有一个包含398行和16个变量的数据框。我想添加一个日期变量。我知道,对于每一行,日期增加一周,从2010-01-01开始。我尝试过以下方法:

date <- ymd("2010-01-01")
df <- as.data.frame(c(1:nrow(data), 1))
for (i in 1:nrow(data)){
  date <- date + 7
  df[i,] <- as.Date(date)
}

然后我想将它绑定到我的数据框架。但是,df中的值是非日期。如果我执行日期+7计算它是有效的(例如,一旦它进入2010-01-08),但如果我将它分配给df它变成奇怪的数值。

感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

尝试以下方法:

library(lubridate)
date <- ymd("2010-01-01")

df <- data.frame(ind = 1:5)
df$dates <- seq.Date(from = date, length.out = nrow(df), by = 7) 
# note that `by = "1 week"` would also work, if you prefer more readable code.
df
  ind      dates
1   1 2010-01-01
2   2 2010-01-08
3   3 2010-01-15
4   4 2010-01-22
5   5 2010-01-29

答案 1 :(得分:2)

试试这个:

df$date <- seq(as.Date("2010-01-01"), by = 7, length.out = 398)

还试图养成不调用已经被datadate等函数使用的变量名称的习惯。