R 如何从聚合结果中查找字段名

R 如何从聚合结果中查找字段名,r,dataframe,R,Dataframe,我试图根据数据帧的最大加总值查找该数据帧的索引或名称,例如: 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

我试图根据数据帧的最大加总值查找该数据帧的索引或名称,例如:

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  
df colSums(如.data.frame(df[[1]]))
df[[1]]
21
>colSums(作为.data.frame(df[[2]]))
df[[2]]
159
>colSums(as.data.frame(df[[3]]))
df[[3]]
88

例如,使用
colSums
的最大结果是159,我正试图找出如何返回“
df[[2]]

首先,您可以直接在
数据上运行
colSums
。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
,后者只返回第一次出现的列

首先,您可以直接在
数据框上运行
colSums

> 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
,后者只返回第一次出现的列

这里只有一个data.frame。你想得到什么?总和最大的列?这里只有一个data.frame。你想得到什么?金额最高的专栏?谢谢,这正是我要找的,并对分析中的错误表示歉意。谢谢,这正是我要找的,并对分析中的错误表示歉意。