在R中聚合时如何显示变量名

在R中聚合时如何显示变量名,r,aggregate-functions,R,Aggregate Functions,我想知道当我按如下方式进行聚合时,是否有任何参数设置,结果将显示原始列名,而不是通用的“group.1” data1您可以尝试公式方法 aggregate(cbind(mpg,cyl,disp,hp)~am+gear, mtcars, mean) # am gear mpg cyl disp hp #1 0 3 16.10667 7.466667 326.3000 176.1333 #2 0 4 21.05000 5.000000 155

我想知道当我按如下方式进行聚合时,是否有任何参数设置,结果将显示原始列名,而不是通用的“group.1”


data1您可以尝试公式方法

aggregate(cbind(mpg,cyl,disp,hp)~am+gear, mtcars, mean)
#  am gear      mpg      cyl     disp       hp
#1  0    3 16.10667 7.466667 326.3000 176.1333
#2  0    4 21.05000 5.000000 155.6750 100.7500
#3  1    4 26.27500 4.500000 106.6875  83.8750
#4  1    5 21.38000 6.000000 202.4800 195.6000
或者在列表中重命名

aggregate(mtcars[1:4], list(am=mtcars$am, gear=mtcars$gear),mean)
#   am gear      mpg      cyl     disp       hp
#1  0    3 16.10667 7.466667 326.3000 176.1333
#2  0    4 21.05000 5.000000 155.6750 100.7500
#3  1    4 26.27500 4.500000 106.6875  83.8750
#4  1    5 21.38000 6.000000 202.4800 195.6000
如果有许多名称,则使用
setNames

 aggregate(mtcars[1:4], setNames(list(mtcars$am, mtcars$gear), 
                  names(mtcars)[9:10]),mean)
如果决定使用
dplyr/data.table/sqldf
,则等效代码为

  library(dplyr)
  mtcars %>%
       group_by(am, gear) %>%
       summarise_each(funs(mean), 1:4)
使用
数据表

  library(data.table)#v1.9.5+
  as.data.table(mtcars)[, lapply(.SD, mean), by=.(am, gear), .SDcols=1:4]
使用
sqldf

  library(sqldf)
  nm1 <- toString(sprintf("avg(%s) as %s", 
                  names(mtcars)[1:4], names(mtcars)[1:4]))
  fn$sqldf("select am, gear, $nm1 from mtcars group by am, gear")
库(sqldf)

nm1由于数据帧也是一个列表,因此使用数据帧作为第二个参数:

aggregate(mtcars[1:4], mtcars[c("am", "gear")], mean)
给予:

  am gear      mpg      cyl     disp       hp
1  0    3 16.10667 7.466667 326.3000 176.1333
2  0    4 21.05000 5.000000 155.6750 100.7500
3  1    4 26.27500 4.500000 106.6875  83.8750
4  1    5 21.38000 6.000000 202.4800 195.6000

你好,阿克伦,非常感谢你的快速回复,我更喜欢设置名称:)我想,但是,它说我的声誉太低,无法投票。我会努力赢得15个声誉,阿萨菲·阿克伦,你说得对。再次非常感谢你。我看这个帖子如何获得声誉,似乎不太容易得到15个很快。我会记住这一点,一旦我得到他们,我会回头给你投票:)A是的,你激励了我,我会尽我最大的努力~~
  am gear      mpg      cyl     disp       hp
1  0    3 16.10667 7.466667 326.3000 176.1333
2  0    4 21.05000 5.000000 155.6750 100.7500
3  1    4 26.27500 4.500000 106.6875  83.8750
4  1    5 21.38000 6.000000 202.4800 195.6000