【问题标题】:R Loop for dplyr summarize function [duplicate]dplyr汇总函数的R循环[重复]
【发布时间】:2021-11-30 13:53:43
【问题描述】:

我有一个数据集('DF1'),我想知道每个“站点”每个“日期”的每个“物种”实例出现多少次。我的实际数据集每个站点有五个日期,并且有十个站点,但是我在这里已经压缩了很多。

Site Date Minute Segment Species Vtype
SVC 5/27/2021 5 1 AMCR Call
SVC 5/27/2021 5 1 LISP Song
SVC 5/27/2021 5 2 AMCR Call
SVC 5/27/2021 5 2 LISP Song
SVC 5/27/2021 5 2 LEGO Call
SVC 5/27/2021 11 1 LISP Song
SVC 5/27/2021 11 1 SAVS Song
SVC 5/27/2021 11 1 RCKI Song
SVC 5/27/2021 11 2 SAVS Song
SVC 5/27/2021 11 2 LISP Song
SVC 5/27/2021 11 2 AMCR Call
SVC 5/27/2021 12 1 LISP Song
SVC 5/27/2021 12 1 SAVS Song
SVC 5/27/2021 12 1 AMCR Call
SVC 5/27/2021 12 2 LISP Song
SVC 5/27/2021 12 2 SAVS Song
SVC 5/27/2021 12 2 YRWA Song
SVC 5/27/2021 13 1 SAVS Song
SVC 5/27/2021 13 1 AMCR Call
SVC 5/27/2021 13 1 LISP Song
SVC 5/27/2021 13 1 RCKI Song
SVC 5/27/2021 13 2 YRWA Song
SVC 5/27/2021 13 2 LISP Song
SVC 5/27/2021 13 2 SAVS Song
SVC 5/27/2021 15 1 SAVS Song
SVC 5/27/2021 15 1 YRWA Song
SVC 5/27/2021 15 2 SAVS Song
SVC 5/27/2021 15 2 YRWA Song
SVC 5/27/2021 17 1 SAVS Song
SVC 5/27/2021 17 1 YRWA Song
SVC 5/27/2021 17 2 YRWA Song
SVC 5/27/2021 17 2 SAVS Song
SVC 5/27/2021 17 2 AMCR Call
SVC 5/27/2021 18 1 YRWA Song
SVC 5/27/2021 18 1 SAVS Song
SVC 5/27/2021 18 2 YRWA Song
SVC 5/27/2021 18 2 SAVS Song
SVC 5/27/2021 20 1 SAVS Song
SVC 5/27/2021 20 1 YRWA Song
SVC 5/27/2021 20 2 SAVS Song
SVC 5/27/2021 20 2 YRWA Song
SVC 5/27/2021 20 2 AMCR Call
SVC 5/27/2021 21 1 AMCR Call
SVC 5/27/2021 21 1 SAVS Song
SVC 5/27/2021 21 1 YRWA Song
SVC 5/27/2021 21 2 YRWA Song
SVC 5/27/2021 21 2 AMCR Call
SVC 5/27/2021 21 2 SAVS Song
SVC 5/27/2021 25 1 AMCR Call
SVC 5/27/2021 25 1 SAVS Song
SVC 5/27/2021 25 2 AMCR Call
SVC 5/27/2021 25 2 SAVS Song
TMC 6/1/2021 2 1 DEJU Song
TMC 6/1/2021 2 1 PISI Call
TMC 6/1/2021 2 1 STJA Call
TMC 6/1/2021 2 2 DEJU Song
TMC 6/1/2021 2 2 STJA Call
TMC 6/1/2021 2 2 RCKI Song
TMC 6/1/2021 3 1 DEJU Song
TMC 6/1/2021 3 1 RECR Call
TMC 6/1/2021 3 1 RCKI Song
TMC 6/1/2021 3 1 YRWA Song
TMC 6/1/2021 3 2 MOCH Call
TMC 6/1/2021 3 2 RCKI Song
TMC 6/1/2021 3 2 RECR Call
TMC 6/1/2021 3 2 DEJU Song
TMC 6/1/2021 3 2 YRWA Song
TMC 6/1/2021 3 2 AMRO Call
TMC 6/1/2021 13 1 RCKI Song
TMC 6/1/2021 13 1 YRWA Call
TMC 6/1/2021 13 1 DEJU Song
TMC 6/1/2021 13 1 LISP Song
TMC 6/1/2021 13 2 YRWA Call
TMC 6/1/2021 13 2 RECR Call
TMC 6/1/2021 13 2 DEJU Song
TMC 6/1/2021 13 2 RCKI Song
TMC 6/1/2021 13 2 LISP Song
TMC 6/1/2021 14 1 RCKI Song
TMC 6/1/2021 14 1 YRWA Call
TMC 6/1/2021 14 1 DEJU Song
TMC 6/1/2021 14 1 LISP Song
TMC 6/1/2021 14 2 YRWA Call
TMC 6/1/2021 14 2 DEJU Song
TMC 6/1/2021 14 2 LISP Call
TMC 6/1/2021 17 1 LISP Song
TMC 6/1/2021 17 1 DEJU Song
TMC 6/1/2021 17 1 YRWA Song
TMC 6/1/2021 17 1 AMRO Call
TMC 6/1/2021 17 1 PISI Song
TMC 6/1/2021 17 2 LISP Call
TMC 6/1/2021 17 2 YRWA Song
TMC 6/1/2021 17 2 DEJU Song
TMC 6/1/2021 18 1 YRWA Song
TMC 6/1/2021 18 1 LISP Call
TMC 6/1/2021 18 1 DEJU Song
TMC 6/1/2021 18 2 DEJU Song
TMC 6/1/2021 18 2 LISP Song
TMC 6/1/2021 18 2 YRWA Call
TMC 6/1/2021 18 2 RECR Call
TMC 6/1/2021 21 1 YRWA Call
TMC 6/1/2021 21 1 RCKI Song
TMC 6/1/2021 21 1 LISP Song
TMC 6/1/2021 21 1 PISI Song
TMC 6/1/2021 21 2 RCKI Song
TMC 6/1/2021 21 2 YRWA Call
TMC 6/1/2021 21 2 LISP Song
TMC 6/1/2021 22 1 RCKI Song
TMC 6/1/2021 22 1 YRWA Call
TMC 6/1/2021 22 1 LISP Song
TMC 6/1/2021 22 2 YRWA Call
TMC 6/1/2021 22 2 RCKI Song
TMC 6/1/2021 22 2 LISP Song
TMC 6/1/2021 22 2 AMRO Call
TMC 6/1/2021 22 2 HAFL Song
TMC 6/1/2021 23 1 YRWA Call
TMC 6/1/2021 23 1 RCKI Song
TMC 6/1/2021 23 1 HAFL Song
TMC 6/1/2021 23 1 LISP Song
TMC 6/1/2021 23 2 DEJU Song
TMC 6/1/2021 23 2 RECR Call
TMC 6/1/2021 23 2 LISP Song
TMC 6/1/2021 23 2 RCKI Song
TMC 6/1/2021 23 2 AMRO Call
TMC 6/1/2021 23 2 YRWA Call
TMC 6/1/2021 25 1 DEJU Song
TMC 6/1/2021 25 1 RCKI Song
TMC 6/1/2021 25 1 HAFL Song
TMC 6/1/2021 25 1 LISP Call
TMC 6/1/2021 25 1 YRWA Song
TMC 6/1/2021 25 2 DEJU Song
TMC 6/1/2021 25 2 LISP Call
TMC 6/1/2021 25 2 HAFL Song
TMC 6/1/2021 25 2 RCKI Song

我可以使用以下代码一次汇总一个物种的计数:

DF1 %>% group_by(Site,Date) %>% 
  filter(Species=="AMCR") %>%
  summarise(count_Species = n())

这将返回每个站点在每个日期的“AMCR”计数,但是为每个物种执行此操作然后将所有这些结果合并到一个数据帧中太繁琐了。

有没有办法为每个独特的物种实例循环,然后将它们一起粘贴到一个数据框中?

谢谢!

【问题讨论】:

  • 删除filter 并将Species 添加到您的group_by()?
  • 这给了我整个数据帧中每个物种的总数,而不是每个站点每天的计数。
  • 当我说“将物种添加到您的 group_by() 我的意思是 group_by(Site,Date,Species)”时,这将为您提供每个站点/日期/物种组合的计数,而不是整个数据框。
  • 效果很好!我不敢相信事情就这么简单。我只需要再添加一个术语。谢谢。

标签: r loops dplyr


【解决方案1】:

我们可以使用来自dplyr 包的count

library(dplyr)
df %>% 
  as_tibble() %>%
  count(Species, Date, Site)
   Species Date      Site      n
   <chr>   <chr>     <chr> <int>
 1 AMCR    5/27/2021 SVC      11
 2 AMRO    6/1/2021  TMC       4
 3 DEJU    6/1/2021  TMC      15
 4 HAFL    6/1/2021  TMC       4
 5 LEGO    5/27/2021 SVC       1
 6 LISP    5/27/2021 SVC       8
 7 LISP    6/1/2021  TMC      16
 8 MOCH    6/1/2021  TMC       1
 9 PISI    6/1/2021  TMC       3
10 RCKI    5/27/2021 SVC       2
11 RCKI    6/1/2021  TMC      14
12 RECR    6/1/2021  TMC       5
13 SAVS    5/27/2021 SVC      18
14 STJA    6/1/2021  TMC       2
15 YRWA    5/27/2021 SVC      12
16 YRWA    6/1/2021  TMC      17

【讨论】:

  • 这似乎也与我的问题的 cmets 中的其他解决方案一样有效。
  • count 真的很强大。使用?count(排序、重量、名称)查看它的参数!
  • 我会说答案会自动按字母顺序对数据框进行排序,这是一个额外的好处。
猜你喜欢
  • 2021-01-25
  • 2016-11-30
  • 2021-12-13
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 2017-05-31
  • 2019-08-08
  • 1970-01-01
相关资源
最近更新 更多