R语言 月份设置2位数

bq9c1y66  于 2023-02-10  发布在  其他
关注(0)|答案(1)|浏览(158)

我有一个DF,我想创建一个列与年和月,但设置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)

添加YEAR和MONTH列:

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)

我该如何对待这些只有一位数的月份呢?
感激。

fjaof16o

fjaof16o1#

不使用lubridateyear/month,我们可以直接使用format进行修改,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"))

相关问题