【问题标题】:Calculate counts and averages by group for various columns in a dataset按组计算数据集中各个列的计数和平均值
【发布时间】:2020-03-11 22:53:48
【问题描述】:

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

我希望制作一张将计数和平均值合二为一的表格。

示例数据:

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

数据生成如下表格:

     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

我正在尝试制作一个表格,其中包含以下内容:物种,count 代表物种出现的次数,count 代表国家数量每个物种的样本量平均,每个物种的平均频率。

基本上,我正在尝试获得这样的表格:

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 比较陌生,因此我们将不胜感激!

【问题讨论】:

  • 是基于输入示例的预期输出,因为我无法正确获得计数
  • 不,这不是基于样本的预期输出,我只是放入随机数。但这是一般格式
  • 要获得平均值,'Sample.size'、'Frequency' 应该是数字
  • 哦,对了,对不起!我将示例编辑为数字。
  • 也许是df %&gt;% group_by(Species) %&gt;% mutate(Avg_Sample_size = mean(Sample.size), Avg_Frequency = mean(Frequency), species_count = n()) %&gt;% group_by(Location) %&gt;% mutate(NumberOfCountries = n()) %&gt;% distinct。由于预期不正确,我无法交叉检查

标签: r dplyr count average summarize


【解决方案1】:

我想这就是你想要的 图书馆(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))

【讨论】:

  • 谢谢!这有效(有点)。该表生成了物种计数、平均样本量和平均频率的数据,但国家计数无效。它给出了与物种计数相同的结果,而不是计数国家
猜你喜欢
  • 1970-01-01
  • 2020-06-10
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-03
相关资源
最近更新 更多