按组计算数据集中各列的计数和平均值

Calculate counts and averages by group for various columns in a dataset

我正在尝试总结一个数据集。

我希望制作一个 table 集计数和平均值于一身的软件。

示例数据:

df <- data.frame(
    "Species" = c("A","B","C","D","A","B","C","D"), 
    "Location" =  c("A","B","C","B","A","D","D","E"), 
    "Sample size" = c(1,30,6,2,5,10,3,300), 
    "Frequency"=c(0,0.3,80,0.5,0.01,0.6,1,2)
  )

df

数据产生一个 table 像这样:

     Species Country Sample.size Frequency
1       A       A           1         0
2       B       B          30       0.3
3       C       C           6        80
4       D       B           2       0.5
5       A       A           5      0.01
6       B       D          10       0.6
7       C       D           3         1
8       D       E         300         2

我正在尝试创建一个 table,其中包含一个列:物种,一个 count 一个物种出现的次数,一个 count 表示一个物种出现的国家数量, 平均值 表示每个物种的样本量, 平均值 每个物种的频率.

本质上,我正在尝试获得这样的 table:

Species species_count #_of_Countries Avg_Sample.size Avg_Frequency
A       2             2              10              0
B       2             3              3               0.01
C       3             4              1               20
D       5             1              5               0.5

我是 R 的新手,如有任何帮助,我们将不胜感激!

我想这就是你想要的 图书馆(dplyr)

Summary_df <- df %>% 
group_by(species) %>%
summarize(species_count = n(), 
                 country_count = sum(!is.na(Country)), 
             Avg_sample_size = mean(Sample.size), 
             Avg_frequency = mean(Frequency))