如何查找包含N / A值的列

时间:2019-04-21 00:26:11

标签: r

我有一个包含各种NA值的数据。最简单的是NA,可以使用is.na()轻松找到它。但是,有些只是空白值,有些是N / A值。

对于NA值,我使用colnames(data)[colSums(is.na(data)) > 0]来查找包含NA值的列名。我想为空白和不适用的人做同样的事情。

数据如下:

data = read.csv("file")

 id     description       hosts      zipcode   room available   no room
3432    It is good       Michael P.   10203          T            3
3433                     Sam E.       12030          T            9
1023    It is not bad                  NA            F            NA
2020                       N/A         NA            F            NA

id:数字唯一 说明:文字 主持人:文字 邮政编码:唯一数字 可用房间:因素 没有空间:数字

我可以找到这样的N / A值data[data=="N/A"],但这并没有给我列名。

1 个答案:

答案 0 :(得分:1)

如果只有这些情况,则可以执行以下操作:

na_cols = sapply(df, function(x) sum(ifelse(x == '' | is.na(x) == TRUE | x == 'N/A', 1, 0)))
names(na_cols[na_cols > 0])

如果还有更多“ NA”条件,则需要添加到ifelse语句中。