从R中任何级别的列表中删除空列表

加布里埃尔·黑山(Gabriel Montenegro)

我有一个列表,里面有几个列表:

> res$go
$MF
$MF[[1]]
                                 term evidence         id   pubmed
1 G-protein coupled receptor activity      IEA GO:0004930       NA
2                 calcium ion binding      IEA GO:0005509       NA
3                     protein binding      IPI GO:0005515 17474147

$MF[[2]]
NULL


$BP
$BP[[1]]
                                                             term evidence         id   pubmed
1                                                neuron migration      IEA GO:0001764       NA
2                           regulation of protein phosphorylation      IEA GO:0001932       NA
3 homophilic cell adhesion via plasma membrane adhesion molecules      IEA GO:0007156       NA
4                    G-protein coupled receptor signaling pathway      IEA GO:0007186       NA
5                                            axonal fasciculation      IEA GO:0007413       NA
6                              regulation of protein localization      IEA GO:0032880       NA
7                                                 cilium assembly      IEA GO:0042384       NA
8             Wnt signaling pathway, planar cell polarity pathway      NAS GO:0060071 24431302

$BP[[2]]
NULL


$CC
$CC[[1]]
                            term evidence         id
1                plasma membrane      IEA GO:0005886
2 integral component of membrane      IEA GO:0016021

$CC[[2]]
NULL

但是,其中一些具有NULL列表。我试图找到一种方法从这些列表中删除这些级别的空列表,res$go但我没有。

我试过了:

res$go[!is.null(res$go)]

但是结果是一样的,即使我尝试进一步指定一个级别也无法删除它们。

res$go$BP[!is.null(res$go$BP)]

谢谢您的帮助。

dput输出

> dput(res$go)
structure(list(MF = list(structure(list(term = c("G-protein coupled receptor activity", 
"calcium ion binding", "protein binding"), evidence = c("IEA", 
"IEA", "IPI"), id = c("GO:0004930", "GO:0005509", "GO:0005515"
), pubmed = c(NA, NA, 17474147L)), .Names = c("term", "evidence", 
"id", "pubmed"), class = "data.frame", row.names = c(NA, 3L)), 
    NULL), BP = list(structure(list(term = c("neuron migration", 
"regulation of protein phosphorylation", "homophilic cell adhesion via plasma membrane adhesion molecules", 
"G-protein coupled receptor signaling pathway", "axonal fasciculation", 
"regulation of protein localization", "cilium assembly", "Wnt signaling pathway, planar cell polarity pathway"
), evidence = c("IEA", "IEA", "IEA", "IEA", "IEA", "IEA", "IEA", 
"NAS"), id = c("GO:0001764", "GO:0001932", "GO:0007156", "GO:0007186", 
"GO:0007413", "GO:0032880", "GO:0042384", "GO:0060071"), pubmed = c(NA, 
NA, NA, NA, NA, NA, NA, 24431302L)), .Names = c("term", "evidence", 
"id", "pubmed"), class = "data.frame", row.names = c(NA, 8L)), 
    NULL), CC = list(structure(list(term = c("plasma membrane", 
"integral component of membrane"), evidence = c("IEA", "IEA"), 
    id = c("GO:0005886", "GO:0016021")), .Names = c("term", "evidence", 
"id"), class = "data.frame", row.names = 1:2), NULL)), .Names = c("MF", 
"BP", "CC"))
韦伯

如果使用递归数据结构,则对您的工具箱有用的功能是

postwalk<-function(x,f,pred) if(pred(x)) f(lapply(x,postwalk,f,pred)) else f(x)

这可以比灵活得多rapply对你来说

postwalk(data,function(x) Filter(Negate(is.null),x), function(x) class(x)=="list")

data您的结构在哪里,应该工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从R中任何级别的列表中删除空列表

来自分类Dev

删除R中列表中的空词

来自分类Dev

将列表存储在 R 中的数组中时,如何避免额外级别的列表嵌套?

来自分类Dev

删除R中的空列表元素

来自分类Dev

删除JS嵌套对象数组中任何级别的项目

来自分类Dev

R从列表列表中删除空(nchar = 0)元素

来自分类Dev

如何在R中的复杂列表中组合不同级别的多个元素?

来自分类Dev

在SQL Server中删除各种级别的空XML标记

来自分类Dev

在R Shiny中,给定3个级别的列表,如何自动或基于功能tabPanel?

来自分类Dev

使用R中的预定义功能组合列表的每个级别的元素

来自分类Dev

R中具有data.frame的多个级别的嵌套列表

来自分类Dev

删除NULL元素,并从R中的嵌套列表中取消列出本地级别列表

来自分类Dev

检查嵌套列表中未知级别的属性值

来自分类Dev

从列表中删除\ r

来自分类Dev

从列表内的列表中删除空值

来自分类Dev

从采样列表中删除空的标题列表

来自分类Dev

从Common-lisp的列表的任何级别中删除所有出现的elem

来自分类Dev

从Scheme中的列表列表中删除空列表

来自分类Dev

从整个列表集中删除空列表,并将列表转换为R中的数据框

来自分类Dev

用R删除列表中的空零长度行

来自分类Dev

检测R中的空列表

来自分类Dev

制作包含R中级别的小列表的大列表

来自分类Dev

LISP-添加列表中的所有原子(任何级别)

来自分类Dev

LISP-从列表中添加所有原子(任何级别)

来自分类Dev

列表理解:优雅地删除并删除列表中的空元素

来自分类Dev

R:从列表中删除空格

来自分类Dev

如何从任何对象属性为null或为空的列表中删除All?

来自分类Dev

如果Python中的任何元素为空,如何连接列表并删除整行

来自分类Dev

删除熊猫系列中的空列表

Related 相关文章

  1. 1

    从R中任何级别的列表中删除空列表

  2. 2

    删除R中列表中的空词

  3. 3

    将列表存储在 R 中的数组中时,如何避免额外级别的列表嵌套?

  4. 4

    删除R中的空列表元素

  5. 5

    删除JS嵌套对象数组中任何级别的项目

  6. 6

    R从列表列表中删除空(nchar = 0)元素

  7. 7

    如何在R中的复杂列表中组合不同级别的多个元素?

  8. 8

    在SQL Server中删除各种级别的空XML标记

  9. 9

    在R Shiny中,给定3个级别的列表,如何自动或基于功能tabPanel?

  10. 10

    使用R中的预定义功能组合列表的每个级别的元素

  11. 11

    R中具有data.frame的多个级别的嵌套列表

  12. 12

    删除NULL元素,并从R中的嵌套列表中取消列出本地级别列表

  13. 13

    检查嵌套列表中未知级别的属性值

  14. 14

    从列表中删除\ r

  15. 15

    从列表内的列表中删除空值

  16. 16

    从采样列表中删除空的标题列表

  17. 17

    从Common-lisp的列表的任何级别中删除所有出现的elem

  18. 18

    从Scheme中的列表列表中删除空列表

  19. 19

    从整个列表集中删除空列表,并将列表转换为R中的数据框

  20. 20

    用R删除列表中的空零长度行

  21. 21

    检测R中的空列表

  22. 22

    制作包含R中级别的小列表的大列表

  23. 23

    LISP-添加列表中的所有原子(任何级别)

  24. 24

    LISP-从列表中添加所有原子(任何级别)

  25. 25

    列表理解:优雅地删除并删除列表中的空元素

  26. 26

    R:从列表中删除空格

  27. 27

    如何从任何对象属性为null或为空的列表中删除All?

  28. 28

    如果Python中的任何元素为空,如何连接列表并删除整行

  29. 29

    删除熊猫系列中的空列表

热门标签

归档