如何删除满足以下情况的列表中的所有元素?
miRNA_annotation$EGOT[1]
[1] NA
miRNA_annotation$ELTD1[1]
[1] NA
非常感谢你
最佳
dput(miRNA_annotation)
structure(list(AATF = NA_character_, NKIRAS2 = <S4 object of class structure("targetscanTarget", package = "targetscan.Hs.eg.db")>,
DDX52 = <S4 object of class structure("targetscanTarget", package = "targetscan.Hs.eg.db")>,.....,) Names = c("AATF",...., "ELTD1", "EGOT"))
答案 0 :(得分:3)
或者使用@ MrFlick的例子
Filter(Negate(is.na), x)
如果要包括至少一个非NA
Filter(Negate(function(y) all(is.na(y)) ), x)
答案 1 :(得分:2)
我会假设你的意思是这样的
x<-list(a=1, b=2, c=NA, d=3, e=NA)
x[sapply(x, function(z) !all(is.na(z)))]
# $a
# [1] 1
#
# $b
# [1] 2
#
# $d
# [1] 3
在这里,我们使用sapply
过滤列表,只包含至少有一个非NA值的元素。
答案 2 :(得分:0)
还可以使用:
EGOTNA<-which(is.na(miRNA_annotation$EGOT))
miRNA_annotation <- miRNA_annotation[-EGOTNA,]