【问题标题】:Remove rows with date older than 30 days of specific date [duplicate]删除日期早于特定日期 30 天的行[重复]
【发布时间】:2019-01-05 18:01:48
【问题描述】:

让我们有一个数据框:

date <- c("2019-01-03", "2017-02-03", "2018-12-30", "2018-08-12")
date <- as.Date(date, format = "%Y-%m-%d")
variable <- c(1,2, 100, 500)
df <- data.frame(date, variable)

还有特殊的具体日期:

special_date <- c("2019-01-04")
special_date <- as.Date(special_date, format = "%Y-%m-%d")

如何删除日期早于 special_date 30 天 的所有行?

#expected outcome
#        date variable
#1 2019-01-03        1
#3 2018-12-30      100

【问题讨论】:

    标签: r date dataframe


    【解决方案1】:

    我们可以在subset 中使用来自base R 的逻辑条件

    subset(df, date > (special_date - 30))
    #          date variable
    #1 2019-01-03        1
    #3 2018-12-30      100
    

    或者使用filter 来自tidyverse

    library(tidyverse)
    df %>%
       filter(date > (special_date - 30))
    

    【讨论】:

      猜你喜欢
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 2017-10-23
      相关资源
      最近更新 更多