首页 > 解决方案 > 如何在日期列中为月、日和年创建单独的列?

问题描述

我有 500 行日期列,第一行是 2018-10-17。我想为日、月和年创建单独的列。日期列的类是因子。

标签: r

解决方案


您可以str_extract从库中使用stringr

date <- "2018-10-17"

library(stringr)
df <- data.frame(
  year = str_extract(date, "^\\d{4}"),
  month = str_extract(date, "(?<=-)\\d{2}(?=-)"),
  day = str_extract(date, "(?<=-)\\d{2}$")
)

df
  year month day
1 2018    10  17

或者,format根据需要的日期:

df <- data.frame(
  year = format(as.Date(date, "%Y-%m-%d"), "%Y"),
  month = format(as.Date(date, "%Y-%m-%d"), "%m"),
  day = format(as.Date(date, "%Y-%m-%d"), "%d")
)

推荐阅读