将 yyyy 数字数据转换为 R 中的日期格式

Converting yyyy numeric data to date format in R

我有一个数据集,df 其中有一列包含 yyyy 格式的日期(例如:2018 年)。我正在尝试制作时间序列图,因此需要将它们转换为日期格式。

我最初尝试过,df$year <- as.Date(df$year) 但被告知我需要指定来源。

然后我尝试转换为字符,然后是日期格式: df$year <- as.character(df$year) df$year <- as.Date(df$year, format = “%Y”)

这似乎有效,但是当它将所有年份更改为 yyyy-mm-dd 格式,并将月和日设置为今天的 4 月 5 日时。例如 2018 变成 2018-04-05。

有没有人知道如何解决这个问题?我希望它从 1 月 1 日开始,而不是我执行转换的那一天。我也试过 strptime(as.character(beer_states$year), “%Y”) 结果相同。

非常感谢任何帮助。谢谢!

在转换为日期之前添加任意日期和月份。

df$Date <- as.Date(paste(df$year, 1, 1), '%Y %m %d')

我们可以使用as.yearmon

library(zoo)
df$Date <- as.Date(as.yearmon(df$year, '-01'), '%Y-%m'))