我有一个DF
,我想创建一个带有 YEAR 和 MONTH 的列,但为月份设置 2 位数字。查看我的代码:
ID <- c(111,222,333,444,555)
DATE <- c(as.Date(c('10/10/2021','12/11/2021','30/12/2021','20/01/2022','25/02/2022') ,"%d/%m/%Y"))
DF_1 <- data.frame(ID, DATE)
添加"年"和"月"列:
DF_2 <- DF_1 %>%
mutate(YEAR_MONTH = paste(lubridate::year(DATA),
lubridate::month(DATE),
sep = ""))
如您所见,在 ID 444 和 555 中,月份仅显示一位数字。我希望它看起来像这样:
ID <- c(111,222,333,444,555)
DATE <- c(as.Date(c('10/10/2021','12/11/2021','30/12/2021','20/01/2022','25/02/2022') ,"%d/%m/%Y"))
YEAR_MONTH <- c('202110','202111','202112','202201','202202')
DF_3 <- data.frame(ID, DATE, YEAR_MONTH)
我将如何对待这些只显示一位数的月份?
感激。
而不是使用lubridate
year/month
,我们可以直接使用format
进行修改,返回 4 位数字的年份和 2 位数字的月份。lubridate
返回一个数字/整数值,该值不能在左侧填充 0
library(dplyr)
DF_1 <- DF_1 %>%
mutate(YEAR_MONTH = format(DATE, "%Y%m"))
<小时 />或使用base R
DF_1$YEAR_MONTH <- with(DF_1, format(DATE, "%Y%m"))