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

在R语言中按组删除含缺失值的ID对应所有行

按ID移除含缺失值分组的实现方法

以下是几种在R中实现需求的常用方法:

Base R 实现

无需额外安装包,通过基础函数完成:

# 计算每个ID对应的score是否全部无缺失
id_check <- aggregate(score ~ id, data = df, FUN = function(x) all(!is.na(x)))
# 筛选出符合条件的ID
valid_ids <- id_check$id[id_check$score]
# 提取目标数据
df_clean <- df[df$id %in% valid_ids, ]

dplyr 包实现

使用tidyverse生态的dplyr包,代码更简洁直观:

library(dplyr)

df_clean <- df %>%
  group_by(id) %>%
  # 仅保留score无任何缺失的分组
  filter(all(!is.na(score))) %>%
  ungroup()

data.table 包实现

适合处理大规模数据集,运行效率更高:

library(data.table)

setDT(df)
# 按ID分组,仅保留score全非缺失的组
df_clean <- df[, if (all(!is.na(score))) .SD, by = id]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:12:06