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

R语言如何提取数据框中存在重复学校的所有对应记录

R筛选在校生人数≥2的学校对应行的解决方案

你现有的duplicated()返回的向量仅会标记第二次及之后出现的重复学校条目,第一次出现的重复学校会被标记为FALSE,所以不能直接用这个向量筛选,以下是两种可行方案:

基础R实现

实现1:基于频数统计筛选

先统计每个学校的出现次数,筛选出次数≥2的学校,再匹配原数据保留对应行:

# 统计各学校人数,筛选人数≥2的学校
valid_schools <- names(which(table(school_color_list$学校) >= 2))
# 筛选对应行
result_df <- school_color_list[school_color_list$学校 %in% valid_schools, ]

实现2:基于duplicated逻辑调整

结合正序、倒序两次duplicated结果,标记所有出现过重复的学校对应的行:

# 标记所有属于重复学校的行
all_dup_school_rows <- duplicated(school_color_list$学校) | duplicated(school_color_list$学校, fromLast = TRUE)
# 筛选对应行
result_df <- school_color_list[all_dup_school_rows, ]

dplyr实现(可读性更高)

library(dplyr)

result_df <- school_color_list %>%
  group_by(学校) %>% # 按学校分组
  filter(n() >= 2) %>% # 保留组内行数≥2的所有行
  ungroup() # 可选,解除分组方便后续处理

以上方案运行后,你的示例数据返回结果如下:

姓名学校最喜欢的颜色
JoeyMichiganBlue
TinaBCGold
JohnBCRed
ShaunMichiganTeal

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:36:03