R 无法使用聚合函数正确计算平均值

标签 r aggregate mean

不知道为什么 R 无法正确计算我的数据的平均值。我确实有很多 NA 值,但 R 一直告诉我平均值是 NA。这是一个例子:

data1=read_excel"pepper.xlsx"

data1$cultivar = as.factor(data1$cultivar)

mean = aggregate(data1[,3:4], list(data1$cultivar), mean)
<表类=“s-表”> <标题> 品种 复制 宽度 高度 <正文> BOF 1 12 14 BOF 2 10 不适用 BOF 3 不适用 15 BOF 4 不适用 不适用

而不是计算 BOF 的平均宽度11 和平均值 height为 14.5,它将高度和宽度的平均值计算为 NA。这是我的数据的过度简化。我的研究中有几个品种,并使用 aggregate 计算了每个品种的每个变量的平均值。功能。

最佳答案

更新: 不需要匿名函数(归功于 Gregor Thomas,请参阅评论)。我们可以使用:

summarise(across(where(is.numeric), mean, na.rm = TRUE))

第一个答案: 感谢 Gregor Thomas,colMeans 在这里不起作用。 我们可以使用dplyrsummariseacross

library(dplyr)

df %>% 
  group_by(cultivar) %>% 
  summarise(across(where(is.numeric),~ mean(., na.rm = TRUE)))

输出:

  cultivar replication width height
  <chr>          <dbl> <dbl>  <dbl>
1 BOF              2.5    11   14.5

关于R 无法使用聚合函数正确计算平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67728742/

相关文章:

r - 在 R 中计算每个月最后 5 天的平均值

python - 如何根据另一列中对应值的相似性获得一列值的平均值

r - 如何使水平滚动条在 DT::datatable 中可见

r - 顺序错误(datastate$c): argument 1 is not a vector

r - 如何在 R 中映射分类变量的每种组合?

postgresql - 分组依据 和 "first"或 "min"

r - R 中累积和的向量

python - 使用 pandas groupby 和聚合后使用 MultiIndex 访问列

performance - 计算每个唯一元素出现次数的最快方法

javascript - 使用 d3.js 计算平均 json