我有一个包含三列的数据框,例如
a <- c(1,214,124,124,64,43)
b <- c(0.1,0.9,0.8,0.25,0.3,0.11)
c <- c(1000,12311,2221,5676,3234,7346)
myframe <- data.frame(a,b,c)
现在我想找到a,b和c的最佳组合。最佳组合是a最高,b最低,c最高。如果有多个组合,其中b和c是最低的最高组合,则a应该是决定因素。
如何实现这一目标?
答案 0 :(得分:3)
根据您的修改进行了更新。如果要按最高a,最低b,最低c(按该顺序应用条件)对数据行进行排序,请使用:
with(myframe, order(-a, b, c))
输出(行顺序):
[1] 2 4 3 5 6 1
如果您只想要“最佳”单行(即上面排序的第一个结果):
myframe[with(myframe, order(-a, b, c))[1],]
输出:
a b c
2 214 0.90 12311
答案 1 :(得分:0)
找到&#34;最佳组合,其中a为最高,b为最低,c为最高&#34;:
> apply(myframe, 1, function(x) ifelse(x[1]==max(myframe$a) && x[2]==min(myframe$b) && x[3]==max(myframe$c), x,"" ))
[1] "" "" "" "" "" ""
目前的数据框架中似乎没有这样的组合。