转换字符日期
Converting character dates
我正在尝试在 R 中如下转换字符日期:
Before After
"31/03/2018" "201804"
"30/06/2018" "201807"
"30/09/2018" "201810"
"31/12/2018" "201901"
月份提前了一个月。这将有助于人们尝试将日历日期转换为加拿大财政日期,该日期紧随第 1、4、7 和 10 个月,而不是其他地方的第 3、6、9 和 12 个月(通常)。
看起来你还没有尝试过任何东西,给你:
format(as.Date("31/03/2018","%d/%m/%Y")+1,"%Y%m")
format(as.Date(Before,"%d/%m/%Y")+1,"%Y%m")
使用 lubridate,事情就像增加一天一样简单:
library(lubridate)
before <- c("31/03/2018","30/06/2018","30/09/2018","31/12/2018")
after <- dmy(before)+days(1)
format(after, "%Y%m")
在这种情况下使用 %m+%
运算符非常方便。 %m+% months(1)
会将日期添加 1
个月,或者 %m+% months(2)
会将日期添加 2 个月。甚至可以使用 %m+% years(1)
将 1
年份添加到日期变量。
library(lubridate)
v <- c("31/03/2018", "30/06/2018", "30/09/2018", "31/12/2018")
format((dmy(v) %m+% months(1)), "%Y%m")
#[1] "201804" "201807" "201810" "201901"
我正在尝试在 R 中如下转换字符日期:
Before After
"31/03/2018" "201804"
"30/06/2018" "201807"
"30/09/2018" "201810"
"31/12/2018" "201901"
月份提前了一个月。这将有助于人们尝试将日历日期转换为加拿大财政日期,该日期紧随第 1、4、7 和 10 个月,而不是其他地方的第 3、6、9 和 12 个月(通常)。
看起来你还没有尝试过任何东西,给你:
format(as.Date("31/03/2018","%d/%m/%Y")+1,"%Y%m")
format(as.Date(Before,"%d/%m/%Y")+1,"%Y%m")
使用 lubridate,事情就像增加一天一样简单:
library(lubridate)
before <- c("31/03/2018","30/06/2018","30/09/2018","31/12/2018")
after <- dmy(before)+days(1)
format(after, "%Y%m")
在这种情况下使用 %m+%
运算符非常方便。 %m+% months(1)
会将日期添加 1
个月,或者 %m+% months(2)
会将日期添加 2 个月。甚至可以使用 %m+% years(1)
将 1
年份添加到日期变量。
library(lubridate)
v <- c("31/03/2018", "30/06/2018", "30/09/2018", "31/12/2018")
format((dmy(v) %m+% months(1)), "%Y%m")
#[1] "201804" "201807" "201810" "201901"