【发布时间】:2018-10-24 13:53:02
【问题描述】:
我想以年月格式保留我当前的日期列作为日期。它目前被转换为 chr 格式。我试过 as_datetime 但它将所有值强制为 NA。 我要找的格式是:“2017-01”
library(lubridate)
df<- data.frame(Date=c("2017-01-01","2017-01-02","2017-01-03","2017-01-04",
"2018-01-01","2018-01-02","2018-02-01","2018-03-02"),
N=c(24,10,13,12,10,10,33,45))
df$Date <- as_datetime(df$Date)
df$Date <- ymd(df$Date)
df$Date <- strftime(df$Date,format="%Y-%m")
提前致谢!
【问题讨论】:
-
Date 类保存日期,所以您能做的最好的事情就是将每个日期设置为该月的第一天。如果您真的需要一年级课程,请参阅
zoo::yearmon。 -
要遵循 alistaire 的建议(和惯例)将每个日期设置为每月的第一天,请在创建
df后立即运行df$Date <- floor_date(as.Date(df$Date), 'month') -
@alistaire:编辑我的帖子以反映我正在寻找的格式。 zoo::yearmon 实际上给了我月份的名称。
-
这只是打印方法,它们是为保持一致性而构建的。如果您不喜欢显示格式,通常在最后组装演示图/表格/诸如此类的时候进行修复,此时您可以打印字符串。
-
@Ryan:很有帮助,谢谢!