r - 如何在R中提取列表的非空元素?

标签 r

我有一个非常大的列表,但有些元素(位置)为 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/

相关文章:

r - 将列名从不同的数据框传递到 ggplot

r - R 中的计算,Tableau 中的可视化 - 如何正确集成这两者?

html - Shiny - 传单 map 内的控制小部件

r - 如何在 R 中保存 data.frame?

r - 来自 CRAN 的 MacOS 的 Homebrew R 和 "standard"R 可以共存吗?

r - 如何查询数据框并根据 R 中的另一列更改数据?

python - 如何在 plotly 中获取所有色标的名称?

r - 为什么我不能在 ifelse() 中使用 element_text()?

r - 对于每组,找到具有几列最大值的观察值

r - 如何在R中求两个不相等向量的值之和?