首页 > 解决方案 > 如何查找数据框的行均值包括分类变量。总结类别组的数字数据?

问题描述

包括四个处理(A、B、C、D)'我们的列'和五个块'行'的青霉素生产数据。我需要分别计算每一行的总和和平均值。数据框将变量带入 col,我无法定义治疗 A 的变量并进行总结。我想知道如何以每行有 4 个数字来计算其平均值和总和的方式编写它们...

这是我的代码:

pencilline=c(89,88,97,94,84,77,92,79,81,87,87,85,87,92,89,84,79,81,80,88)
treatment=factor(rep(LETTERS[1:4],times=5))
block=sort(rep(1:5,times=4))
datap=data.frame(pencilline,block,treatment)
datap
 
datap_subset=unlist(lapply(datap,is.numeric))
datap_subset
pencilline      block  treatment 
      TRUE       TRUE      FALSE 
rowMeans(datap[,datap_subset])
 [1] 45.0 44.5 49.0 47.5 43.0 39.5 47.0 40.5 42.0 45.0 45.0 44.0 45.5 48.0 46.5 44.0 42.0 43.0 42.5 46.5

这给出了错误的 rowMeans。

标签: rdataframecategorical-data

解决方案


你想要这个吗?

library(dplyr)
datap %>% group_by(block) %>%
  summarise(mean = mean(pencilline))

# A tibble: 5 x 2
  block  mean
  <int> <dbl>
1     1    92
2     2    83
3     3    85
4     4    88
5     5    82

它的 baseR 等价物

aggregate(pencilline ~ block, datap, mean)

  block pencilline
1     1         92
2     2         83
3     3         85
4     4         88
5     5         82

推荐阅读