首页 > 解决方案 > 无法使用表的聚合计算平均值,结果显示为 N/A

问题描述

目前使用 R 计算给定表中性别和基因型的每种组合的平均值和标准差:

id Sex     Genotype  Activity
  1 male    ff        1.884 
  2 male    ff        2.283 
  3 male    fs        2.396 
  4 female  ff        2.838   
  5 male    fs        2.956 
  6 female  ff        4.216 
  7 female  ss        3.620 

我使用该函数制作了一个名为 tabled 的表

tabled <- table(data$Sex, data$Genotype)

当我尝试计算平均值时,我尝试以下函数:

aggregate(data$Sex ~ data$Genotype, by=list(data$Genotype), FUN=mean)

我得到的输出是

Group.1 data$Sex
<fctr> <dbl>
ff     NA           
fs     NA           
ss     NA           
3 rows

我究竟做错了什么?谢谢!

标签: r

解决方案


我们可以使用公式法。在这里,我们通过删除data[-1]第一列~) and complete the formula with

aggregate(Activity ~., data[-1], FUN=mean)
#    Sex Genotype Activity
#1 female       ff   3.5270
#2   male       ff   2.0835
#3   male       fs   2.6760
#4 female       ss   3.6200

在OP的代码中,它将公式方法与data.frame方法混合在一起。


推荐阅读