gpt4 book ai didi

r - R中的聚合函数使用列索引号而不是名称

转载 作者:行者123 更新时间:2023-12-05 02:41:17 26 4
gpt4 key购买 nike

我想在 R 中使用聚合函数,使用列索引号来标识要聚合的数据框列,而不是列名。

这是一个使用列名的示例:

df = data.frame(A = c("a", "a", "b", "b", "c", "c"), B = 1:3, C = 1:3, D = 1:3)
aggregate(cbind(B, C, D) ~ A, data = df, sum)

但我不想在 cbind 中列出 B、C 和 D,而是要指示它使用列 2:4。

最佳答案

我们可以只使用 . 来指定其余的列

aggregate(. ~ A, data = df, sum)
A B C D
1 a 3 3 3
2 b 4 4 4
3 c 5 5 5

或者如果我们特别想要位置索引,将数据子集化并转换为matrix

aggregate(as.matrix(df[2:4]) ~ A, data = df, sum)
A B C D
1 a 3 3 3
2 b 4 4 4
3 c 5 5 5

或者使用dplyr

library(dplyr)
df %>%
group_by(A) %>%
summarise(across(all_of(names(.)[2:4]), sum))

关于r - R中的聚合函数使用列索引号而不是名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68145836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com