我正在尝试为data.frame中的每一行选择值最高的列。因此,例如,数据就这样设置。
> df <- data.frame(one = c(0:6), two = c(6:0))
> df
one two
1 0 6
2 1 5
3 2 4
4 3 3
5 4 2
6 5 1
7 6 0
然后我想基于这些行设置另一列。数据框看起来像这样。
> df
one two rank
1 0 6 2
2 1 5 2
3 2 4 2
4 3 3 3
5 4 2 1
6 5 1 1
7 6 0 1
我想我可以通过某种方式在这里使用plyr或sapply,但此刻它正在躲避我。
答案 0 :(得分:6)
可能有更有效的解决方案,但
ranks <- apply(df, 1, which.max)
ranks[which(df[, 1] == df[, 2])] <- 3
编辑:间隔适当!