【问题标题】:substract date column in dataframe on r [duplicate]减去r上数据框中的日期列[重复]
【发布时间】:2021-01-12 16:40:46
【问题描述】:

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

我需要写什么代码?

【问题讨论】:

  • ,下次请阅读一些关于formatting questions 的内容。它可能看起来很琐碎和/或只是美观,但是当代码块显示为 html 标题和块引用时,它可能会分散注意力。此外,将## 添加到您的每一列使我们难以尝试使用您的数据,目前(在我编辑之后),我们可以突出显示、复制和运行read.table(header=TRUE, "clipboard")(或类似的非 Windows )。

标签: r


【解决方案1】:

使用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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 2011-03-06
    • 2014-10-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多