R:在指定日期之后的数据框中查找最接近的日期(索引)

时间:2018-11-26 19:28:16

标签: r date dataframe indexing

我目前正在尝试在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日之后的第一个索引的位置? (或其他解决此问题的方法)

1 个答案:

答案 0 :(得分:2)

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

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

要找到与之匹配的行的位置,

which(i1)

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

DF[i1, , drop = FALSE]