【发布时间】:2020-12-15 20:14:00
【问题描述】:
我有一列日期(列类型为“字符”),如下所示:
X1Wk.End.2019.Jan.06
X1Wk.End.2019.Jan.13
X1Wk.End.2019.Jan.20
X1Wk.End.2019.Jan.27
...
有没有一种优雅的方法可以将这些日期转换为格式 YYYY-MM-DD 作为“日期”类型?
非常感谢!
【问题讨论】:
我有一列日期(列类型为“字符”),如下所示:
X1Wk.End.2019.Jan.06
X1Wk.End.2019.Jan.13
X1Wk.End.2019.Jan.20
X1Wk.End.2019.Jan.27
...
有没有一种优雅的方法可以将这些日期转换为格式 YYYY-MM-DD 作为“日期”类型?
非常感谢!
【问题讨论】:
我们可以删除前缀直到“结束”。它应该适用于ymd
library(lubridate)
library(stringr)
df1$date <- ymd(str_remove(df1$date, ".*End\\."))
df1$date
#[1] "2019-01-06" "2019-01-13" "2019-01-20" "2019-01-27"
或使用as.Date 来自base R
as.Date(df1$date, format = "X1Wk.End.%Y.%b.%d")
#[1] "2019-01-06" "2019-01-13" "2019-01-20" "2019-01-27"
df1 <- structure(list(date = c("X1Wk.End.2019.Jan.06", "X1Wk.End.2019.Jan.13",
"X1Wk.End.2019.Jan.20", "X1Wk.End.2019.Jan.27")), class = "data.frame",
row.names = c(NA,
-4L))
【讨论】: