首页 > 解决方案 > 在r上的数据框中减去日期列

问题描述

我有调用的数据框df

number       date
 1           2012-07-01
 2           2012-08-01
 3           2012-09-01
 4           2012-10-01
 5           2012-11-01

我需要从每个日期中减去 3 个月。当我运行df它会给我那个数据框:

number       date
 1           2012-04-01
 2           2012-05-01
 3           2012-06-01
 4           2012-07-01
 5           2012-08-01

我需要写什么代码?

标签: r

解决方案


使用seq.Date.

d$date3 <- as.Date(sapply(d$date, seq, by="-3 month", length.out=2)[2,], 
                   origin="1970-01-01")
#   number       date      date3
# 1      1 2012-07-01 2012-04-01
# 2      2 2012-08-01 2012-05-01
# 3      3 2012-09-01 2012-06-01
# 4      4 2012-10-01 2012-07-01
# 5      5 2012-11-01 2012-08-01

数据:

d <- structure(list(number = 1:5, date = c("2012-07-01", "2012-08-01", 
"2012-09-01", "2012-10-01", "2012-11-01")), class = "data.frame", row.names = c(NA, 
-5L))

推荐阅读