【发布时间】:2019-07-25 10:53:37
【问题描述】:
我有一些包含数字列的数据:
df <- data.frame(v1 = c(0,1,2,3,4,5,6,7,8), v2 = c(5,6,3,21,24,7,8,9,6), v3 = c(23,5,24,87,6,32,5,48,6),v4 = c(2,32,6,58,5,21,4,5,87), v5 = c(5,23,65,86,4,12,115,5,24))
我需要创建三个新列,每行包含第一个、第二个和第三个最大值。所以想要的输出是这样的:
v1 v2 v3 v4 v5 first second third
1 0 5 23 2 4 23 5 4
2 1 6 5 32 23 32 23 6
3 2 3 24 6 65 65 24 6
4 3 21 87 58 87 87 86 58
5 4 24 6 5 4 24 6 5
6 5 7 32 21 12 32 21 12
7 6 8 5 4 115 115 8 6
8 7 9 48 5 5 48 9 5
9 8 6 6 87 24 87 24 8
有什么简单的方法吗? 我可以用which.max得到最大值,它只是找到了让我困惑的第二个和第三个最大值
【问题讨论】: