r语言 - 在月份中设置 2 位数字



我有一个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)

我将如何对待这些只显示一位数的月份?

感激。

而不是使用lubridateyear/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"))

最新更新