【问题标题】:R: Finding the closest date (index) in a dataframe that comes after a specified dateR:在指定日期之后的数据框中查找最近的日期(索引)
【发布时间】:2019-04-28 11:47:35
【问题描述】:

我目前正在尝试在 R 中解决这个问题:

假设我给出了一个随机生成的数据帧 DF,如下所示:

            Value
2009-10-21  46.14286
2009-12-22  46.33714
2010-02-23  46.42857
2010-04-27  46.12143
2010-06-28  46.55857
2010-08-29  46.60286
2010-10-30  46.49714
2010-12-31  46.13571
2011-06-03  46.52000
2011-08-04  47.49143

其中第一列表示数据框的索引。 我的目标是编写一个函数来删除 2010 年 9 月 19 日之前的所有条目。通常,我会这样解决这个问题:

DF <- DF[c(-1:-6),]

但是,在随机生成的数据框中,我不知道哪一行的索引在 2010 年 9 月 19 日之后,哪一行的索引在 2010 年 9 月 19 日之前。

是否有任何功能可以找出 2010 年 9 月 19 日之后出现的第一个索引的位置? (或任何其他解决此问题的方法)

【问题讨论】:

  • 您可以查看索引。即as.Date(row.names(DF)) &gt; as.Date('2010-09-19')

标签: r date dataframe indexing


【解决方案1】:

我们可以用数据集的row.names创建一个逻辑索引

i1 <- as.Date(row.names(DF)) >= as.Date('2010-09-19')

要找到匹配的行的位置,

which(i1)

使用索引对数据集进行子集化

DF[i1, , drop = FALSE]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    相关资源
    最近更新 更多