在R语言中如何从datetime日期时间数据中提取月份和年份
实现方案
以下给出两种常用实现方式,运行前需保证Order.Date列已转换为日期格式:
方案1:使用lubridate包(推荐,代码更易读)
lubridate包封装了非常友好的日期处理函数,直接调用内置方法即可得到目标结果:
# 加载包(未安装先运行 install.packages("lubridate") 安装) library(lubridate) # 若Order.Date是字符串格式,先转成日期类型 df$Order.Date <- ymd(df$Order.Date) # 提取英文全称月份:label=TRUE返回名称而非数字,abbr=FALSE指定返回全称而非缩写 df$Month <- month(df$Order.Date, label = TRUE, abbr = FALSE) # 提取年份 df$Year <- year(df$Order.Date)
方案2:使用base R实现(无需安装额外包)
用base R的format函数配合日期格式符也可实现:
# 转日期格式 df$Order.Date <- as.Date(df$Order.Date) # 若你的系统locale不是英文,先运行以下代码临时切换时间locale为英文,避免得到中文月份 # Windows系统: # Sys.setlocale("LC_TIME", "English") # Mac/Linux系统: # Sys.setlocale("LC_TIME", "en_US.UTF-8") # 提取4位年份 df$Year <- format(df$Order.Date, "%Y") # 提取英文全称月份 df$Month <- format(df$Order.Date, "%B")
运行以上任意一种方案,就能得到你需要的结果。
内容的提问来源于stack exchange,提问作者Napier
相关产品推荐
相关产品推荐

