如何同时获取含NA值的数据框列名与列序号?
获取数据框中含NA值的列名与列序号
可以通过以下几种基础R方法同时获取列序号和列名:
方法一:分步获取并合并
- 先筛选出包含NA值的列的位置序号:
na_col_indices <- which(sapply(df, anyNA)) - 提取对应的列名(
names()直接作用于序号向量即可得到对应列名):na_col_names <- names(na_col_indices) - 将两者合并为数据框,方便查看:
na_col_info <- data.frame(列序号 = na_col_indices, 列名 = na_col_names) print(na_col_info)
方法二:一行代码直接生成结果
如果想简化操作,可直接用一行代码生成包含列序号和列名的数据框:
data.frame(列序号 = which(sapply(df, anyNA)), 列名 = names(df)[which(sapply(df, anyNA))])
示例效果
假设你的数据框df如下:
df <- data.frame(a = c(1,2,NA), b = c(NA,3,4), c = c(5,6,7))
运行上述代码后,会得到结果:
列序号 列名 a 1 a b 2 b
内容的提问来源于stack exchange,提问作者Kristen Cyr
相关产品推荐
相关产品推荐

