如何在数据框中添加日期列

问题描述

我有一个包含许多不同列的数据框(每列有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)