我目前正在尝试在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日之后的第一个索引的位置? (或其他解决此问题的方法)
答案 0 :(得分:2)
我们可以使用数据集的row.names创建一个逻辑索引
i1 <- as.Date(row.names(DF)) >= as.Date('2010-09-19')
要找到与之匹配的行的位置,
which(i1)
使用索引对数据集进行子集
DF[i1, , drop = FALSE]