小编Mar*_*oRe的帖子

R从列表列表中删除充满NA的列表

我有一个列表列表,其中可能包含 NA 值。如何删除充满 NA 值的列表,请记住,如果列表中有非 NA 值,则不应删除这些值和 NA 值?

输入示例:

myList <- list()
myList[[1]] <- c(1,2,3)
myList[[2]] <- c(4,5)
myList[[3]] <- c(NA,NA,NA,NA,NA)
myList[[4]] <- c(NA, 6, 7, NA)
myList[[5]] <- NA
Run Code Online (Sandbox Code Playgroud)

所需的输出是:

[[1]]
[1] 1 2 3

[[2]]
[1] 4 5

[[3]]
[1] NA  6  7 NA
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能够做到:

test <- lapply(myList, function(x) x[!all(is.na(x))])
Run Code Online (Sandbox Code Playgroud)

并作为输出:

[[1]]
[1] 1 2 3

[[2]]
[1] 4 5

[[3]]
logical(0)

[[4]]
[1] NA  6  7 NA

[[5]]
logical(0)
Run Code Online (Sandbox Code Playgroud)

r list na

7
推荐指数
3
解决办法
1135
查看次数

标签 统计

list ×1

na ×1

r ×1