我有以下数据集:
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
答案 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
根据需要。