【发布时间】:2022-08-06 20:31:18
【问题描述】:
这张照片显示了我当前的数据框,其中包含每个国家记录入侵物种的第一年的信息。我对分类单元数据不感兴趣,只对分类单元的数量感兴趣,而是希望每个国家和年份都有一行,计算该国家当年引入的分类单元的数量。 例如。
阿富汗,1996 年,1。 阿富汗,1974 年,1。 ... 阿拉斯加,2020 年,1。 阿拉斯加,2017 年,2。 等等。
我考虑过遍历每一行,但有没有更快的方法来做到这一点?
这张照片显示了我当前的数据框,其中包含每个国家记录入侵物种的第一年的信息。我对分类单元数据不感兴趣,只对分类单元的数量感兴趣,而是希望每个国家和年份都有一行,计算该国家当年引入的分类单元的数量。 例如。
阿富汗,1996 年,1。 阿富汗,1974 年,1。 ... 阿拉斯加,2020 年,1。 阿拉斯加,2017 年,2。 等等。
我考虑过遍历每一行,但有没有更快的方法来做到这一点?
这是你要找的吗?
library(dplyr)
region <- c("Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Aland Islands", "Aland Islands", "Aland Islands", "Aland Islands", "Alaska", "Alaska", "Alaska", "Alaska", "Alaska", "Alaska", "Alaska", "Alaska")
firstrecord <- c(1996, 1974, 1972, 1970, 1966, 1964, 2008, 1998, 1934, 1930, 2020, 2017, 2017, 2016, 2016, 2015, 2014, 2014)
df <- data.frame(Region = region, FirstRecord = firstrecord)
df %>% group_by(Region, FirstRecord) %>% summarise(TaxaCount = n())
# A tibble: 15 × 3
# Groups: Region [3]
Region FirstRecord TaxaCount
<chr> <dbl> <int>
1 Afghanistan 1964 1
2 Afghanistan 1966 1
3 Afghanistan 1970 1
4 Afghanistan 1972 1
5 Afghanistan 1974 1
6 Afghanistan 1996 1
7 Aland Islands 1930 1
8 Aland Islands 1934 1
9 Aland Islands 1998 1
10 Aland Islands 2008 1
11 Alaska 2014 2
12 Alaska 2015 1
13 Alaska 2016 2
14 Alaska 2017 2
15 Alaska 2020 1
【讨论】:
group_by 有办法解决生活中的大多数问题。
group_by的好页面:r-graphics.org/recipe-dataprep-summarize