Индексируйте следующую строку с идентичным значением в R - PullRequest
3 голосов
/ 16 июня 2011

У меня есть следующая матрица с именем test:

            High Thresh Sig
2007-02-27 19.01  11.88   1
2007-03-01 19.40  17.29   1
2007-03-02 18.63  17.29   1
2007-03-14 21.25  20.41   1
2007-06-25 17.24  16.70   1
2007-06-27 18.98  18.89   1

Я хотел бы отменить строку в 2007-03-02, так как она имеет значение, аналогичное предыдущему дню в столбце Thresh.

Я пробовал это:

test_shorter <- subset(test, diff(Thresh) !=0)

но он индексирует первое вхождение, тогда как я хочу отбросить второе вхождение.

1 Ответ

6 голосов
/ 16 июня 2011

Функция duplicated отлично подходит для подобных ситуаций.Например:

> test[!duplicated(test[,'Thresh']),]
            High Thresh Sig
2007-02-27 19.01  11.88   1
2007-03-01 19.40  17.29   1
2007-03-14 21.25  20.41   1
2007-06-25 17.24  16.70   1
2007-06-27 18.98  18.89   1

Если вам нужны те же результаты, что и вы, вы можете использовать аргумент fromLast=:

> test[!duplicated(test[,'Thresh'], fromLast=TRUE),]
            High Thresh Sig
2007-02-27 19.01  11.88   1
2007-03-02 18.63  17.29   1
2007-03-14 21.25  20.41   1
2007-06-25 17.24  16.70   1
2007-06-27 18.98  18.89   1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...