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

如何在R语言中按列提取含NA值的ID列表?

获取数据框各列含NA值的ID列表

假设你用R语言处理数据,以下是两种直接实现的方法:

基础R方法

先构造示例数据:

df <- data.frame(
  ID = 1:5,
  col1 = c(2, NA, 8, 0, NA),
  col2 = c(NA, 2, 19, NA, 4)
)

遍历各列提取对应NA的ID:

# 遍历除ID外的所有列,提取含NA的ID
na_id_list <- sapply(df[-1], function(col) df$ID[is.na(col)])
# 转换为数据框格式
result_df <- as.data.frame(na_id_list)

运行后result_df就是你需要的结果:

col1 col2
1    2    1
2    5    4

tidyverse 方法

如果你习惯用tidyverse工具包:

library(tidyverse)

result_df <- df %>%
  # 宽表转长表,方便筛选NA
  pivot_longer(cols = -ID, names_to = "column", values_to = "value") %>%
  # 筛选出值为NA的行
  filter(is.na(value)) %>%
  # 转回宽表,将ID按列整理
  pivot_wider(names_from = "column", values_from = "ID", values_fn = list) %>%
  # 展开列表为多行
  unnest(cols = c(col1, col2))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:12:41