[英]Extracting year and month from Date in R
所以我在 R 中有一个数据框:
Date
2002-01-24
2003-02-25
2004-03-26
当我检查日期列的数据类型时,
str(df$Date)
它是“日期”类型。
现在,我想创建一个名为“Month”的新列,我将在 Date 列中取年和月的部分,没有日期。
Date Month
2002-01-24 2002-01
2003-02-25 2003-02
2004-03-26 2004-03
我这样做的方式如下:
df$Month <- format(as.Date(df$Date), "%Y-%m"))
但是当我跑步时
str(df$Month)
它说它是"chr"类型而不是"Date" 。 有什么方法可以将其保留在“日期”数据类型中而不是转换为 chr?
Date
类描述了特定的一天。 (顺便说一句,内部表示是自 1970 年 1 月 1 日以来的天数。)因此,如果不指定Date
,您就不能拥有Date
。
如果您想在表示特定月份时保留Date
类,您可以向下舍入到该月的第一天:
lubridate::floor_date(as.Date("2019-04-19"), "month")
这将返回2019-04-01
。
使用 OP 的数据:
df <- data.frame(Date = as.Date(c("2002-01-24", "2003-02-25", "2004-03-26")))
df$Month <- lubridate::floor_date((df$Date), "month")
df
Date Month 1 2002-01-24 2002-01-01 2 2003-02-25 2003-02-01 3 2004-03-26 2004-03-01
str(df)
'data.frame': 3 obs. of 2 variables: $ Date : Date, format: "2002-01-24" "2003-02-25" "2004-03-26" $ Month: Date, format: "2002-01-01" "2003-02-01" "2004-03-01"
这对于绘制月度聚合非常方便。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.