我的聚合命令根据特定变量获取所有列的平均值。我希望它只将函数应用于某些列。我的代码采用以下格式进行聚合:
aggregate(dataframe,list(name=variable),mean)
这给了我基于特定变量的不同列的平均值。我想有选择地选择我的列。
答案 0 :(得分:2)
如果要应用选择列2 and 3
(数字索引)
aggregate(dat1[,2:3], list(name=dat1[,'variable']), FUN=mean)
# name V1 V2
#1 A 10.2 11.2
#2 B 12.8 7.6
或者您可以使用列名
替换数字索引 aggregate(dat1[,c("V1", "V2")], list(name=dat1[,'variable']), FUN=mean)
# name V1 V2
#1 A 10.2 11.2
#2 B 12.8 7.6
或使用dplyr
library(dplyr)
dat1 %>%
group_by(variable) %>%
summarise_each(funs(mean=mean(., na.rm=TRUE)), V1,V2)
# variable V1 V2
#1 A 10.2 11.2
#2 B 12.8 7.6
或使用data.table
library(data.table)
setDT(dat1)[, lapply(.SD, mean), by=variable, .SDcols=colnames(dat1)[2:3]]
# variable V1 V2
#1: A 10.2 11.2
#2: B 12.8 7.6
set.seed(24)
dat1 <- cbind(variable=rep(LETTERS[1:2], each=5),
as.data.frame(matrix(sample(1:20, 10*5, replace=TRUE), ncol=5)))
答案 1 :(得分:0)
您可以尝试使用公式进行定义:
aggregate(cbind(Var2mean1, Var2mean2) ~ groupvar, data = dataframe, FUN = mean)