我有一个递归列表,我想在其上执行一些函数。
示例:
subset_list<-list(A=list(kan=data.frame(corr=seq(1,10),Lib=rep("Kan",times=10),pheno1=seq(11,20),pheno2=seq(20,11)),Cm=data.frame(corr=seq(1,10),Lib=rep("Cm",times=10),pheno1=seq(1,10),pheno2=seq(10,1)),all=data.frame(corr=seq(1,20),Lib=rep("AQ",times=20),pheno1=seq(1,20),pheno2=seq(20,1))),B=list(kan=data.frame(corr=seq(1,10),Lib=rep("Kan",times=10),pheno1=seq(11,20),pheno2=seq(20,11)),Cm=data.frame(corr=seq(10,20),Lib=rep("Cm",times=11),pheno1=seq(10,20),pheno2=seq(20,10)),all=data.frame(corr=seq(20,40),Lib=rep('AQ',times=21),pheno1=seq(0,20),pheno2=seq(20,0))))
通过阅读以前的帖子,我想出了这个解决方案,找到每个子列表的密度。它虽然对我来说似乎有点尴尬但它仍在工作。
density_subset_list<-lapply(subset_list,function(x) lapply(lapply(x,'[[','corr'),density))
然而,我的下一个功能是基于2列的子集,我无法弄清楚如何做到这一点。下面是我的尝试,但它会产生一个列表3(Kan,Cm,all - 内部列表)而不是2(A,B列表的第1级)。
for (i in 1:length(subset_list)){
subset_list_excLowPheno<-lapply(subset_list[[i]],function(x) subset(x,x$pheno1 > 10 & x$pheno2 > 10 ))
}
欢迎任何关于将这些函数应用于这些递归列表的方法的建议。
谢谢,