如果我有以下数据帧:
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)