查找R中列组合的NA值计数
假设我有一个如下的数据集查找R中列组合的NA值计数,r,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 我不知道如何对多个列的组合执行此操作。有人能帮我吗?表格请打开: table(lapply(dd, is.na)) # b
(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
我不知道如何对多个列的组合执行此操作。有人能帮我吗?
表格
请打开:
table(lapply(dd, is.na))
# b
#a FALSE TRUE
# FALSE 2 1
# TRUE 2 1
如果您需要一个向量用于子集设置,因为交互
提供:
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
vec@rawr这一个没有给出实际输出。我要伯爵。还有,当有更多的值时,行数太多。是的,仍在尝试。@rawr,我正在做审查服务,但看不出这个问题怎么只有小问题(我不同意审计)。它没有表现出提问者的努力。请开导我。@benjamin我不知道你在问我什么。我的编辑使示例数据具有可复制性,因此可以复制并使用下面答案中的代码。我同意没有付出任何努力shown@rawr,您的编辑很好。在一次审计中,我没有通过SO分类部分的测试,认为这个问题是可以补救的,而我没有。感谢您的反馈。当您有两列以上的栏目时,后一种方法将产生最容易消化的结果。@TheLate Mail非常感谢。。你让它看起来很简单!!
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