计算具有同一列的两个数据帧之间的“匹配”数量

问题描述 投票:0回答:1

我有两个数据框:

head(数据框一):

    A tibble: 6 × 3 
Groups:   Site [1]
  Site  Species                  n
  <chr> <chr>                <int>
1 BRY1  American Goldfinch       5
2 BRY1  Brown-headed Cowbird     1
3 BRY1  Carolina Wren            1
4 BRY1  Chimney Swift            4
5 BRY1  Common Nighthawk         2
6 BRY1  Common Yellowthroat      1

head(数据框二):

# A tibble: 6 × 3
# Groups:   Site [1]
  Site  Species               n
  <chr> <chr>             <int>
1 BRY1  Chimney Swift         1
2 BRY1  Gray Catbird          1
3 BRY1  House Wren            1
4 BRY1  Indigo Bunting        1
5 BRY1  Northern Cardinal     1
6 BRY1  Warbling Vireo        1

我想按站点查找这两个数据框之间的物种“匹配”数量。两个数据框都有 9 个站点的物种数据(BRY1 - BRY9;每个站点的行数不同),我想计算两个数据框之间每个站点“匹配”的物种数量。更简单地说,如果两个数据框在站点 BRY1 中都有 Chimney Swift 的条目,那么这将是 1 个“匹配”。

我一直在尝试使用 semi_join() 函数,但成功有限。

感谢您的时间和支持!

r dplyr tidyverse semi-join
1个回答
0
投票

匹配的物种 <- Data frame One %>% semi_join(数据框二, by = c("站点", "物种")) %>% 计数(站点)

匹配的物种

© www.soinside.com 2019 - 2024. All rights reserved.