使用R中的相同值索引后续行

时间:2011-06-16 04:06:14

标签: r indexing

我有以下名为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 个答案:

答案 0 :(得分:6)

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