如何从R中的日期对象减去1年?

时间:2019-01-23 15:42:46

标签: r date

我有一个日期对象,如下所示:

'2013-01'

'2013-02'

...

例如,如何从2013年减去1年,同时保持月份不变

'2012-01'

'2012-02'

...

2 个答案:

答案 0 :(得分:4)

可以通过转换为yearmon类然后减去1来完成

library(zoo)
format(as.yearmon(str1) - 1, '%Y-%m')
#[1] "2012-01" "2012-02"

类似地,要减去一个月,请使用1/12

format(as.yearmon(str1) - 1/12, '%Y-%m')

数据

str1 <- c('2013-01', '2013-02')

答案 1 :(得分:1)

使用as.POSIXlt

进行检查
s=as.POSIXlt(paste0(str1,'-01'))
s$year=s$year-1
format(s,'%Y-%m')
[1] "2012-01" "2012-02"