我的数据框如下:
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]))
请帮忙。
答案 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