如何在r中删除具有na值的列
您可以使用两种方法之一从 R 数据框中删除包含 NA 值的列:
方法一:使用Base R
df[, colSums(is. na (df))== 0 ]
方法2:使用dplyr
library (dplyr) df %>% select_if(~ !any(is. na (.)))
两种方法产生相同的结果。
以下示例展示了如何在实践中使用以下数据框使用每种方法:
#create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
points=c(99, NA, NA, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, NA))
#view data frame
df
team points assists rebounds
1 A 99 33 30
2 B NA 28 28
3 C NA 31 24
4 D 88 39 24
5 E 95 34 NA
示例 1:使用 Base R 删除具有 NA 值的列
以下代码展示了如何使用基本 R 函数删除具有 NA 值的列:
#define new data frame new_df <- df[ , colSums(is. na (df))== 0 ] #view new data frame new_df team assists 1 to 33 2 B 28 3 C 31 4 D 39 5 E 34
请注意,具有 NA 值(得分和篮板)的两列均已从数据框中删除。
示例2:使用dplyr删除具有NA值的列
以下代码展示了如何使用dplyr包中的函数删除具有 NA 值的列:
library (dplyr)
#define new data frame
new_df <- df %>% select_if(~ !any(is. na (.)))
#view new data frame
new_df
team assists
1 to 33
2 B 28
3 C 31
4 D 39
5 E 34
同样,具有 NA 值(得分和篮板)的两列都从数据框中删除。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: