根据上面行的值删除行

时间:2014-05-15 16:27:27

标签: r subset

我有以下数据集:

data <- cbind(c(1,2,3,4,5,6,7,8,9,10,11),c(1,11,21,60,30,2,61,12,3,35,63))

我想选择第二列中的数字大于到达该点的最高数字的行。结果应如下所示。

    [,1]    [,2]
[1,]    1   1
[2,]    2   11
[3,]    3   21
[4,]    4   60
[5,]    7   61
[6,]    11  63

2 个答案:

答案 0 :(得分:3)

您想尝试cummax

> d[ d[,2] == cummax(d[,2]) ,]
     [,1] [,2]
[1,]    1    1
[2,]    2   11
[3,]    3   21
[4,]    4   60
[5,]    7   61
[6,]   11   63

PS。 data是一个内部R函数,因此,R变量和函数共享命名空间(R设计受Scheme影响,这是"Lisp-1") ,你的变量会影响系统功能。

答案 1 :(得分:2)

cummax功能应该可以正常运行

data[ data[,2]==cummax(data[,2]),] 

返回

     [,1] [,2]
[1,]    1    1
[2,]    2   11
[3,]    3   21
[4,]    4   60
[5,]    7   61
[6,]   11   63

根据需要。