R语言 如何获得不同组水平的计数平均值

quhf5bfb  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(118)

我想我要做的事情很简单,但我不能完全破解它。我有一个列“Random_ID”,其中包含参与者代码。总共有16个不同的参与者,他们分布在四所学校,由School_ID号表示。我的目标是计算每所学校参与者的平均值。在本例中,我知道这将是四个。但目标是推断出相当多的参与者和学校。任何帮助将不胜感激。

(df <- data.frame(Random_ID = c("A1", "A2", "A3", "A4", "A5", "A6","A7", "A8", "A9", "10", "A11", "A12", "A13", "A14", "A15", "A16"), School_ID = c("1", "2", "3", "4", "1", "2", "3", "4", 
                                                                                                                                                    "1", "2", "3", "4", "1", "2", "3", "4")))
#>    Random_ID School_ID
#> 1         A1         1
#> 2         A2         2
#> 3         A3         3
#> 4         A4         4
#> 5         A5         1
#> 6         A6         2
#> 7         A7         3
#> 8         A8         4
#> 9         A9         1
#> 10        10         2
#> 11       A11         3
#> 12       A12         4
#> 13       A13         1
#> 14       A14         2
#> 15       A15         3
#> 16       A16         4

创建于2023年3月1日,使用reprex v2.0.2

k3fezbri

k3fezbri1#

使用dplyr可以计算每个学校的数量,然后取这些计数的平均值

library(dplyr)
df %>% 
  count(School_ID) %>% 
  summarize(mean(n))

这会将值保留在data.frame中。如果您想将其提取为数值向量,可以执行以下操作

df %>% 
  count(School_ID) %>% 
  pull(n) %>% 
  mean()

以R为基数,您可以使用table进行计数,然后取平均值

mean(table(df$School_ID))

相关问题