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。你想得到什么?金额最高的专栏?谢谢,这正是我要找的,并对分析中的错误表示歉意。谢谢,这正是我要找的,并对分析中的错误表示歉意。