【发布时间】:2019-02-21 02:50:27
【问题描述】:
假设我有一个包含四个数据帧的列表,其中包含一些 NA 值:
my.list<-replicate(4,data.frame())
names(my.list)<-paste0("Frame.Number", c(1:4))
for (i in 1:4){
my.list[[i]]<-mapply(rnorm,10,c(1:4))
my.list[[i]][i+1,3]<-NA
my.list[[i]][c(i,i*2),4]<-NA
}
对于每个 data.frames,我想在第 4 列中选择那些不包含 NA 的行。例如,我可以创建一个向量列表 (?),其中包含有关每个 data.frame 中案例完整性的信息:
selector <- lapply(my.list,"[",, 4)
selector <- lapply(selector,complete.cases)
现在这是我卡住的地方:如何将selector 列表应用于my.list 列表以便仅选择完整的案例?我以为我可以再次使用lapply,但我想不出一些有意义的语法。
【问题讨论】:
-
lapply(my.list, function(x) x[complete.cases(x),]) -
感谢您的快速回复。 “现实”有点复杂:因此我将更新我的问题。
-
是的。这就是我一直在寻找的。看起来很简单,但是当你对 R 不太熟悉时,找到这样的东西可能会很痛苦。谢谢!