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

R语言如何查找score列缺失1、2、3任意值的id并保存为向量

实现方法

你原代码的问题是group_by()后没有针对每个分组执行独立的判断逻辑,直接调用全局判断只会对整个数据集生效,无法得到分组统计结果。

dplyr 实现方案

library(dplyr)

# 直接提取缺失所需值的id向量
missing_ids <- df %>%
  group_by(id) %>%
  # 判断当前分组的score列是否不全包含1、2、3
  filter(!all(c(1, 2, 3) %in% score)) %>%
  pull(id) %>%
  unique() # 对重复id去重

如果需要先查看每个id的匹配情况再提取,可以先做分组汇总:

id_check_result <- df %>%
  group_by(id) %>%
  summarise(
    is_complete = all(c(1,2,3) %in% score),
    .groups = "drop"
  )

# 提取不满足条件的id
missing_ids <- id_check_result %>%
  filter(!is_complete) %>%
  pull(id)

基础R实现方案(无需加载第三方包)

# 按id拆分score列
score_by_id <- split(df$score, df$id)
# 判断每个id的score是否不全包含目标值,提取对应id
missing_ids <- names(which(!sapply(score_by_id, function(x) all(c(1,2,3) %in% x))))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:54:05