问题描述
我有一个包含许多不同列的数据框(每列有10行/条目),并且我想向该数据框添加一个日期列作为第一列。日期栏应于今天结束,并从今天9开始。 以下数据框只是一个反例:
set.seed(123)
df <- data.frame(DE = rnorm(10,2,1),Wind = rnorm(10,5,2),Solar = rnorm(10,2))
因此,在这种情况下,日期列应为c("2020-10-10",...,"2020-10-19")
。
如何添加一个取决于当前日期的cate-column,例如今天是10月19日,所以该日期应以today()-9
开始。
解决方法
您可以使用seq.Date
函数来生成这样的列表。在这里,我们使用df
中的行数,但是如果愿意,您可以硬编码10个
date_vals <- rev(seq(Sys.Date(),by="-1 days",length.out=nrow(df)))
我们从10开始,向后走一些步骤,然后反转列表以首先获取最早的日期。
您还可以同时指定两个日期
date_vals <- seq(Sys.Date()-9,Sys.Date(),by="1 day")
然后,无论采用哪种方式创建值,都可以使用此方法将它们添加为data.frame的第一列。
df <- data.frame(dates=date_vals,df)