A:如何查找包含所有缺失值的列


您可以使用以下方法查找 R 数据框中包含所有缺失值的列:

方法一:使用Base R

 #check if each column has all missing values
all_miss <- apply(df, 2, function (x) all(is. na (x)))

#display columns with all missing values
names(all_miss[all_miss>0])   

方法2:使用purrr包

 library (purrr)

#display columns with all missing values
df %>% keep(~all(is. na (.x))) %>% names

两种方法产生相同的结果,但 purrr 方法对于极大的数据帧往往更快。

以下示例展示了如何在 R 中将每种方法与以下数据帧一起使用:

 #create data frame
df <- data. frame (points=c(21, 15, 10, 4, 4, 9, 12, 10),
                 assists=c(NA, NA, NA, NA, NA, NA, NA, NA),
                 rebounds=c(8, 12, 14, 10, 7, 9, 8, 5),
                 steals=c(NA, NA, NA, NA, NA, NA, NA, NA))

#view data frame
df

  points assists rebounds steals
1 21 NA 8 NA
2 15 NA 12 NA
3 10 NA 14 NA
4 4 NA 10 NA
5 4 NA 7 NA
6 9 NA 9 NA
7 12 NA 8 NA
8 10 NA 5 NA

示例 1:使用 Base R 查找包含所有缺失值的列

以下代码显示如何在数据框中查找包含所有缺失值的列:

 #check if each column has all missing values
all_miss <- apply(df, 2, function (x) all(is. na (x)))

#display columns with all missing values
names(all_miss[all_miss>0])   

[1] “assists” “steals” 

从结果中我们可以看到助攻拦截列都有缺失值。

示例 2:使用 purrr 包查找包含所有缺失值的列

以下代码展示了如何使用purrr包中的函数查找数据框中包含所有缺失值的列:

 library (purrr)

#display columns with all missing values
df %>% keep(~all(is. na (.x))) %>% names

[1] “assists” “steals” 

从结果中我们可以看到助攻拦截列都有缺失值。

这对应于基本 R 方法的输出。

其他资源

以下教程解释了如何在 R 中执行缺失值的其他常见操作:

如何在R中全部估算缺失值
如何在 R 中用字符串替换 NA
如何在 dplyr 中用零替换 NA

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注