【问题标题】:How do I delete rows in a data frame based on the value (date) in one of the columns?如何根据其中一列中的值(日期)删除数据框中的行?
【发布时间】:2018-03-02 10:26:27
【问题描述】:

我有一个包含每日数据的数据框。它有 500,000+ 行和 18 列。第二列包含日期。

例如,它从 2017 年 7 月 1 日到当前日期,按时间顺序排列。

我每周一提取数据并将其输入到 R 中,但我只想要数据直到最近的星期五。

我设置了一个变量,等于最近的星期五日期(数据的确切日期格式):

library(lubridate)

LastFriday <- gsub("X", "", gsub("X0", "", format(
                                   Sys.Date() - wday(Sys.date()+1), "X%m/X%d/%Y))) 

返回9/15/2017

如何删除数据框中包含上周五日期的最后一行之后的所有行?

【问题讨论】:

  • 请提供可重现的例子

标签: r dataframe


【解决方案1】:

以下应该可以工作,虽然我还没有测试过

keep_index <- as.POSIXct(as.Date(df[,2]), "X%m/X%d/%Y") <= as.POSIXct(LastFriday, format = "X%m/X%d/%Y")
mydf <- df[keep_index, ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 2023-01-05
    • 2018-03-11
    • 1970-01-01
    • 2020-11-13
    相关资源
    最近更新 更多