簡體   English   中英

從 R 中的日期中提取年和月

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM