假设我有一个数据集如下,
(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
我不知道如何为列组合执行此操作。有人能帮助我吗?
答案 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