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)