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