子集数据帧具有最高行值

时间:2016-01-08 11:02:59

标签: r

考虑数据框:

a=1
b=3
c=4
df=data.frame(a,b,c)
row.names(df)<-"x"

Preview:
    ╔═══╦═══╦═══╦═══╗
    ║   ║ a ║ b ║ c ║
    ╠═══╬═══╬═══╬═══╣
    ║ x ║ 1 ║ 3 ║ 4 ║
    ╚═══╩═══╩═══╩═══╝
maxn <- function(n) function(x) order(x, decreasing = TRUE)[n]
highest<- apply(df, 1, function(x)x[maxn(1)(x)])

这是它产生的输出:

 > highest
    x 
    4

我需要的还有行名和列名:

  c
x 4

1 个答案:

答案 0 :(得分:3)

试试这个:

df[apply(df,1,which.max)]