确定具有NA的行数

时间:2014-01-15 13:38:01

标签: r dataframe

我的数据框如下:

     col1   col2    col3
 1    23    17      NA
 2    55    NA      NA
 3    24    12      13
 4    34    23      12

我有兴趣找到col2中的行数和使用NA的col3。

我很惊讶以下代码只给了我4而不是2:

numNAs <- rowSums(is.na(all[,2:3]))

请帮忙。

5 个答案:

答案 0 :(得分:3)

另一个简短的解决方案:

> sum(!complete.cases(dat[-1]))
[1] 2

其中dat是数据框的名称。

答案 1 :(得分:2)

DF <- read.table(text="     col1   col2    col3
 1    23    17      NA
 2    55    NA      NA
 3    24    12      13
 4    34    23      12", header=TRUE)

这给出了第2列或第3列中包含任何NA值的行数:

sum(colSums(is.na(DF[,2:3])) > 0)
[1] 2

答案 2 :(得分:2)

另一种解决方案:

data <- read.table(text='col1   col2    col3
    23    17      NA
    55    NA      NA
    24    12      13
    34    23      12', header=T)

sum(apply(is.na(data[, -1]), 1, any))

答案 3 :(得分:1)

test <- read.table(textConnection("     col1   col2    col3
1    23    17      NA
2    55    NA      NA
3    24    12      13
4    34    23      12"))

> table(test$col2,useNA="ifany")

  12   17   23 <NA> 
   1    1    1    1 
> table(test$col3,useNA="ifany")

  12   13 <NA> 
   1    1    2 

答案 4 :(得分:1)

添加第2列和第3列的另一种解决方案:

> sum(is.na(all[,"col2"] + all[,"col3"]))
[1] 2