在R中按字符串列名聚合
发布时间:2020-12-14 04:59:53 所属栏目:百科 来源:网络整理
导读:我想将data.frame中的数据分组为两列,然后对特定的第三列求和.例如: aggregate(mpg~gear+cyl,data=mtcars,FUN=sum) gear cyl mpg1 3 4 21.52 4 4 215.43 5 4 56.44 3 6 39.55 4 6 79.06 5 6 19.77 3 8 180.68 5 8 30.8 现在,我需要为不同的列多次执行此操作
我想将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)),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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |