Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在r中一次按组求和多个变量_R_Aggregate - Fatal编程技术网

在r中一次按组求和多个变量

在r中一次按组求和多个变量,r,aggregate,R,Aggregate,我有多个变量要按组求和。变量的名称具有完全相同的第一个字符,以1到n结尾。所有要求和的变量在数据框中并排排列。我能找到的只是: id<-1:nrow(df) n<-length(id) data2<-aggregate(cbind(vol_1,vol_2,vol_3,vol_4,vol_5,vol_6,vol_7,vol_8,vol_9,vol_10)~group,data=data1,sum,na.rm=T) id您似乎在寻找rowSums 你可以试试: vars <

我有多个变量要按组求和。变量的名称具有完全相同的第一个字符,以1到n结尾。所有要求和的变量在数据框中并排排列。我能找到的只是:

id<-1:nrow(df)
n<-length(id)
data2<-aggregate(cbind(vol_1,vol_2,vol_3,vol_4,vol_5,vol_6,vol_7,vol_8,vol_9,vol_10)~group,data=data1,sum,na.rm=T)

id您似乎在寻找
rowSums

你可以试试:

vars <- c("vol_1","vol_2","vol_3","vol_4","vol_5","vol_6","vol_7","vol_8","vol_9","vol_10")

as.matrix(vars)

rowSums(vars)

vars如果变量都以相同的字符开头,如您所说的“v”,那么dplyr包中的
summary_at
函数就派上了用场:

library(dplyr)
df %>%
  group_by(group) %>%
  summarise_at(vars(starts_with("v")), sum)

# A tibble: 2 x 4
  group vol_1 vol_2 vol_3
  <fct> <int> <int> <int>
1 1        29    27    24
2 2        26    28    31

您还可以使用数据表

library(data.table)
dt <- data.table(df)
dt[,.(sum(vol_1),sum(vol_2)),by=.(group)]
库(data.table)

嗨,欢迎来到SO。请确保发布一篇文章,包括您的数据。如果我们可以运行您的代码,我们会容易得多,但是我们不知道
df
vol_1
是什么在这个示例中,n=6,数据1是:d1这是否回答了您的问题?
library(data.table)
dt <- data.table(df)
dt[,.(sum(vol_1),sum(vol_2)),by=.(group)]