我有一个嵌套列表(或列表列表),其中包含NA随机分配的值。我试图确定嵌套列表是否包含所有NA值。例如:
#Example list with NA values
L.miss<-list(list(NA,NA,c(NA,NA,NA),c(NA,NA)),list(1,6,c(0,3,NA,0,NA,0),c(0,NA,0,1,0,0),1,NA,c(0,1),2,c(0,0)),
list(NA,NA),list(1,0),list(1,NA,c(NA,0,0,0),c(NA,NA),c(1,0,0,NA,0),0))
Run Code Online (Sandbox Code Playgroud)
在这里,L.miss[[1]]并L.miss[[3]]包含所有NA值。当我尝试:
all.NA<-sapply(L.miss, function(x) all(is.na(x)))
Run Code Online (Sandbox Code Playgroud)
它返回一个逻辑向量[1] FALSE FALSE TRUE FALSE FALSE。期望的输出将是[1] TRUE FALSE TRUE FALSE FALSE因为position L.miss[[1]]并L.miss[[3]]包含all的向量NA。我已经尝试过lapply并rapply具有相同的功能,但无法正常工作,并且详尽的Internet搜索无法提供太多帮助。我不确定为什么要接这个[[3]]职位而不是这个[[1]]职位。任何意见,将不胜感激!
取消列出嵌套列表,然后测试:
all.NA<-sapply(L.miss, function(x) all(is.na(unlist(x))))
Run Code Online (Sandbox Code Playgroud)