我试图根据该数据框的最大聚合值查找数据框的索引或名称,例如:
df <- data.frame(
id = 1:6,
v1 = c(3, 20, 34, 23, 23, 56),
v2 = c(1, 3, 4, 10, 30, 40),
v3 = c(20, 35, 60, 60, 70, 80))
id v1 v2 v3
1 1 3 1 20
2 2 20 3 35
3 3 34 4 60
4 4 23 10 60
5 5 23 30 70
6 6 56 40 80
> colSums(as.data.frame(df[[1]]))
df[[1]]
21
> colSums(as.data.frame(df[[2]]))
df[[2]]
159
> colSums(as.data.frame(df[[3]]))
df[[3]]
88
例如,使用colSums
的最大结果为159,我正在尝试找出如何返回“df[[2]]
”
答案 0 :(得分:3)
首先,您只需直接在colSums
data.frame
即可
> colSums(df)
id v1 v2 v3
21 159 88 325
子集也很容易
> df[which.max(colSums(df))]
v3
1 20
2 35
3 60
4 60
5 70
6 80
或者,如果您只想要索引,如第一行所暗示的那样:
> which.max(colSums(df))
v3
4
另请注意,如果您希望可能有多个列具有相同的最大总和,并且您想要返回所有这些列,则可以使用which(colSums(df) == max(colSums(df)))
而不是which.max
,这只会返回第一次出现。