我似乎无法想出以下内容。
我有一个包含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它变成奇怪的数值。
感谢任何帮助。
答案 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)
还试图养成不调用已经被data
和date
等函数使用的变量名称的习惯。