我有看起来像这样的数据 (dat)
region muscle protein
head cerebrum 78
head cerebrum 56
head petiole 1
head petiole 2
tail pectoral 3
tail pectoral 4
我想取
cerebrum
蛋白质值的平均值。我试图查找不同的方法来对数据 here 和 here 进行子集化。但似乎没有一种直接的方法来做到这一点。现在,我正在这样做:datcerebrum <- dat[which(dat$muscle == "cerebrum"),]
mean(datcerebrum$protein)
我试着浓缩这一行:
mean(dat[which(dat$muscle == "cerebrum"),])
但它抛出一个 NA 并警告参数不是数字或逻辑。有没有简单的方法来实现这一目标?
最佳答案
我们可以使用 aggregate
中的 base R
aggregate(protein ~muscle, dat, mean)
# muscle protein
#1 cerebrum 67.0
#2 pectoral 3.5
#3 petiole 1.5
关于r - 如何在R中同时使用统计函数和子集数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46368612/