我有一个非常大的列表,但有些元素(位置)为 NULL,意味着里面没有任何内容。 我只想提取列表中非空的部分。这是我的努力,但我遇到了错误:
ind<-sapply(mylist, function() which(x)!=NULL)
list<-mylist[ind]
#Error in which(x) : argument to 'which' is not logical
有人可以帮我实现它吗?
最佳答案
您可以在此处使用 is.null
的逻辑非。可以使用 vapply
将其应用于列表,并且我们可以使用 [
(mylist <- list(1:5, NULL, letters[1:5]))
# [[1]]
# [1] 1 2 3 4 5
# [[2]]
# NULL
# [[3]]
# [1] "a" "b" "c" "d" "e"
mylist[vapply(mylist, Negate(is.null), NA)]
# [[1]]
# [1] 1 2 3 4 5
# [[2]]
# [1] "a" "b" "c" "d" "e"
关于r - 如何在R中提取列表的非空元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24184726/