You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于tidyverse筛选多匹配Name-City对并生成tibble

解决方案(基于tidyverse)

根据你的需求,我们可以通过分组统计筛选出符合条件的Name-City匹配对,最终生成目标tibble。以下分两种常见需求场景提供代码:


场景1:找出同一Name-City组合出现次数超过1次的匹配对

比如示例中Simon-LA组合出现了3次,这类就是需要保留的目标。

代码实现

library(tidyverse)

# 模拟你的数据集(实际使用时替换为你的真实数据)
df <- tibble(
  Name = c("Anne", "Simon", "James", "Charlie", "Simon", "Anne", "Jason", "Simon"),
  City = c("NY", "LA", "LON", "SA", "LA", "URE", "HAM", "LA"),
  ID = rep(2, 8)
)

# 核心处理逻辑
target_tibble <- df %>%
  # 按姓名+城市分组,统计每组出现次数
  count(Name, City, name = "Match_Count") %>%
  # 筛选出现次数>1的组合
  filter(Match_Count > 1)

# 查看结果
target_tibble

输出结果

# A tibble: 1 × 3
  Name  City  Match_Count
  <chr> <chr>       <int>
1 Simon LA              3

场景2:找出关联了多个不同城市的姓名及其对应城市

比如示例中Anne关联了NY和URE两个不同城市,这类场景下需要保留所有该姓名对应的城市。

代码实现

target_tibble_alt <- df %>%
  # 先去重姓名-城市组合
  distinct(Name, City) %>%
  # 统计每个姓名对应的不同城市数量
  group_by(Name) %>%
  mutate(Unique_City_Count = n()) %>%
  ungroup() %>%
  # 筛选有多个不同城市的记录
  filter(Unique_City_Count > 1)

# 查看结果
target_tibble_alt

输出结果

# A tibble: 2 × 3
  Name  City  Unique_City_Count
  <chr> <chr>             <int>
1 Anne  NY                    2
2 Anne  URE                   2

你可以根据实际需求选择对应的代码逻辑,直接替换模拟数据集为你的真实数据即可运行。

内容的提问来源于stack exchange,提问作者Henry Oufh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:18:20