用R打印包含列名的第二个最高值

时间:2016-06-16 19:44:56

标签: r

我有输入文件

c = structure(c(10, 22, 40, 20, 25, 22, 15, 10, 45, 8, 13, 59), .Dim = 3:4)
     [1] [2] [3] [4]
     10  20  15   8
     22  25  10   13
     40  22  45   59 

我希望得到像这样的输出 如果存在第二高的值,则应将该列名称打印到行

[]
3
1
3

我能够通过

提取第二高的值
apply(c, 1, function(i) sort(i)[ dim(c)[2]-1])

但我想获取列名而不是值。

1 个答案:

答案 0 :(得分:1)

尝试:

> apply(c, 1, order)[3, ]
[1] 3 1 3
> 

或如果您有超过4列apply(c, 1, order)[ncol(c)-1, ]

顺便说一句,最好不要使用现有函数的名称命名变量,例如c