如何在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 中执行其他常见任务:

如何在 R 中向数据框添加列
如何在 R 中重命名数据框列
如何在R中按列对数据框进行排序

添加评论

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