查找R中列组合的NA值的计数

时间:2015-11-20 00:23:43

标签: r

假设我有一个数据集如下,

(dd <- read.table(header = TRUE, text="a    b
1    2
NA   1
1    NA
NA   NA
1    2
NA   3"))

#    a  b
# 1  1  2
# 2 NA  1
# 3  1 NA
# 4 NA NA
# 5  1  2
# 6 NA  3

我在想如何获得两列组合的NA值。我的输出应该是,

No NA - 2
1st column NA - 2
2nd column NA - 1
Both NA - 1

我不知道如何为列组合执行此操作。有人能帮助我吗?

1 个答案:

答案 0 :(得分:7)

table它:

table(lapply(dd, is.na))

#       b
#a       FALSE TRUE
#  FALSE     2    1
#  TRUE      2    1

如果你需要一个用于子集化目的的向量,那么interaction给出:

interaction(lapply(dd,is.na))
#[1] FALSE.FALSE TRUE.FALSE  FALSE.TRUE  TRUE.TRUE   FALSE.FALSE TRUE.FALSE 
#Levels: FALSE.FALSE TRUE.FALSE FALSE.TRUE TRUE.TRUE

你可以这样做:

vec <- c("none","first","second","both")[interaction(lapply(dd,is.na))]
#[1] none   first  second both   none   first

table(vec)
#vec
#  none  first second   both 
#     2      2      1      1