R根据标准计算平均值
给定以下数据集,我需要一种方法来计算每个地区样本的平均值,并填充适当的列。关于最佳方法的任何建议R根据标准计算平均值,r,R,给定以下数据集,我需要一种方法来计算每个地区样本的平均值,并填充适当的列。关于最佳方法的任何建议 TERRITORY SAMPLE_A SAMPLE_B SAMPLE_C MEAN_A MEAN_B MEAN_C A 21 34 23 A 23 23 54 B 34
TERRITORY SAMPLE_A SAMPLE_B SAMPLE_C MEAN_A MEAN_B MEAN_C
A 21 34 23
A 23 23 54
B 34 67 23
B 35 76 65
C 45 34 65
C 87 34 45
有很多方法可以做到这一点。这里有一种方法使用
plyr
。注意:我假设样本c中的RE
应该是一个缺少的值?也就是说,一个NA
无论如何,试试看
library(plyr)
new.dat <- ddply(dat, .(territory), transform,
mean_a = mean(sample_a), mean_b= mean(sample_b), mean_c=mean(sample_c))
库(plyr)
new.dat有很多方法可以做到这一点,但是如果您想坚持使用基本R,请使用聚合。如果您的数据帧为d
,则平均值可计算为
means <- aggregate(. ~ TERRITORY, data = d, mean)
表示基础为+1。但是,这种方法返回一个数据帧,其中每个区域的唯一值对应一行。从OP的问题来看,他似乎想要原始表中的平均值,这可以通过使用?merge
实现。当然,我会更新答案以包含合并
names(means) <- gsub("^SAMPLE_", "MEAN_", names(means))
merge(d, means)