R: Нахождение ближайшей даты (индекса) в кадре данных, который идет после указанной даты - PullRequest
0 голосов
/ 26 ноября 2018

Я сейчас пытаюсь решить эту проблему в 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

, где первый столбец обозначаетиндекс фрейма данных.Моя цель - написать функцию, которая удаляет все записи до 19 сентября 2010 года. Обычно я решаю эту проблему примерно так:

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

Однако в случайно сгенерированном кадре данных я не могу знать, какая строкаимеет индекс после 19 сентября 2010 года, и какая строка имеет индекс до 19 сентября 2010 года.

Существует ли какая-либо функция для определения позиции первого индекса, который следует после 19 сентября 2010 года?(или любой другой подход к решению этой проблемы)

1 Ответ

0 голосов
/ 26 ноября 2018

Мы можем создать логический индекс с именами строк.набора данных

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

Чтобы найти положение строк, где он соответствует,

which(i1)

Используйте индекс дляподмножество набора данных

DF[i1, , drop = FALSE]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...