从函数R中的列表列表中删除NA

从函数R中的列表列表中删除NA,r,R,我有一个函数,它将一个嵌套的整数列表(或列表列表)作为输入,并根据概率p1随机分配NA的值。我想扩展此功能以从列表中删除NAs 我知道删除NAs是internet上的一个常见问题,我已经回顾了有关堆栈溢出和其他方面的问题,但没有一个解决方案有效。一般来说,提出的问题并不涉及实际的清单 我试过: #Example data d<-list(1,3,c(0,NA,0),c(0,0)) e<-list(1,6,c(0,3,NA,0,NA,0),c(0,NA,0,1,0,0),1,NA,c(

我有一个函数,它将一个嵌套的整数列表(或列表列表)作为输入,并根据概率p1随机分配NA的值。我想扩展此功能以从列表中删除NAs

我知道删除NAs是internet上的一个常见问题,我已经回顾了有关堆栈溢出和其他方面的问题,但没有一个解决方案有效。一般来说,提出的问题并不涉及实际的清单

我试过:

#Example data
d<-list(1,3,c(0,NA,0),c(0,0))
e<-list(1,6,c(0,3,NA,0,NA,0),c(0,NA,0,1,0,0),1,NA,c(0,0))
f<-list(1,0)
L.miss<-list(d,e,f)

#Tests
test1<-lapply(L.miss,function(x) x[!is.na(x)]) #Doesnt work
test2<-lapply(L.miss,Filter,f=Negate(is.na)) #Doesnt work
test3<-lapply(L.miss,na.omit) #Doesnt work
#示例数据

d使用
rappy

rapply(L.miss, na.omit, how = "replace")

作为生成一些无关信息的
rappy
函数中的
na.ommit
的替代方法,我还发现以下代码性能更好:

rapply(test2,function(x) x[!is.na(x)], how="replace")

当然,两者都可以,只是另一种选择

为了营救-谢谢!
rapply(test2,function(x) x[!is.na(x)], how="replace")