在要素水平内找到最高价值

use*_*296 6 r

如果我有以下数据帧:

value    factorA    factorB
1           a          e
2           a          f
3           a          g
1           b          k
2           b          l
3           b          m
1           c          e
2           c          g
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到每个因子A的最高值和与之相关的因子B的条目,即

value   factorA factorB

3         a        g
3         b        m
2         c        g
Run Code Online (Sandbox Code Playgroud)

如果没有先使用,这是否可行

blocks<-split(factorA, list(), drop=TRUE)
Run Code Online (Sandbox Code Playgroud)

然后对每个块$ a进行排序,因为这将执行多次,并且块的数量将始终改变.

Jos*_*ien 12

这是一个使用基本R函数的选项:

maxRows <- by(df, df$factorA, function(X) X[which.max(X$value),])
do.call("rbind", maxRows)
#   value factorA factorB
# a     3       a       g
# b     3       b       m
# c     2       c       g
Run Code Online (Sandbox Code Playgroud)