gpt4 book ai didi

r - R中按字符串列名聚合

转载 作者:行者123 更新时间:2023-12-02 03:56:26 27 4
gpt4 key购买 nike

我想按两列对 data.frame 中的数据进行分组,然后对特定的第三列进行求和。例如:

> aggregate(mpg~gear+cyl, data=mtcars, FUN=sum)
gear cyl mpg
1 3 4 21.5
2 4 4 215.4
3 5 4 56.4
4 3 6 39.5
5 4 6 79.0
6 5 6 19.7
7 3 8 180.6
8 5 8 30.8

现在,我需要对不同的列执行多次此操作。所以我想写一个函数来概括这一点。它采用 data.frame 和其中一列(为了简单起见)并执行相同的操作。

agg.data <- function(df, colname) {
aggregate(mpg~gear+colname, data=df, FUN=sum)
}

运行此命令将产生:

Error in eval(expr, envir, enclos) : object 'colname' not found

如何传入 colname 的值进行聚合?

最佳答案

将公式的字符串表示形式粘贴在一起,并将该字符串作为 Formula() 的参数...

agg.data <- function(df, colname) {
aggregate(formula(paste0("mpg~gear+", colname)), data=df, FUN=sum)
}

> agg.data(mtcars, "cyl")
gear cyl mpg
1 3 4 21.5
2 4 4 215.4
3 5 4 56.4
4 3 6 39.5
5 4 6 79.0
6 5 6 19.7
7 3 8 180.6
8 5 8 30.8

关于r - R中按字符串列名聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28863133/

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