我有一个具有每月日期的列,该列具有此类类型(月数,_,年):
Date
9_2018
1_2013
12_2014
等
我想将此日期格式转换为以下格式的日期(年,月):
New_Date
201809
201301
201412
我该怎么做?
答案 0 :(得分:2)
我们可以使用zoo::as.yearmon
来转换日期,然后使用format
来获取所需格式的数据。
format(zoo::as.yearmon(df$Date, "%m_%Y"), "%Y%m")
#[1] "201809" "201301" "201412"
或者也可以通过将任意日期粘贴到我们拥有的年月值中来在R基数中完成。
format(as.Date(paste0("1_", df$Date), "%d_%m_%Y"), "%Y%m")
数据
df <- structure(list(Date = structure(c(3L, 1L, 2L), .Label = c("1_2013",
"12_2014", "9_2018"), class = "factor")),
class = "data.frame",row.names = c(NA, -3L))
答案 1 :(得分:1)
将月份填充零,然后在“ _”处分割:
library(stringr)
mon <- sapply(strsplit(Date, "_"), FUN="[", 1)
mon <- str_pad(mon, width=2, pad="0")
year <- sapply(strsplit(Date, "_"), FUN="[", 2)
paste0(year,mon)
[1] "201809" "201301" "201412"