我有一个复杂的脚本来获取数据帧格式的结果。该脚本包括两个不同的功能,如下所示。
nSNP=(mean(DF$NSNP[DF$KB>=1000 & DF$KB<=1100]))*0.1
data.n = apply(data.frame(seq(0,249900000,100000), seq(100000,250000000,100000)), MARGIN=1,
function(x,y,z,a) poisson.roh_island(DF, 1, x[1], x[2]))
data.p = apply(data.frame(seq(0,249900000,100000), seq(100000,250000000,100000)), MARGIN=1,
function(x,y,z,a) roh_island(DF, 1, x[1], x[2]))
av<-mean(data.n)
pval<-ppois(data.n,lambda=av,lower=FALSE)
x<-seq(1:2500)
pos<-(x*1e+05)
len<-rep(0.1,2500)
nsnp<-rep(nSNP,2500)
prop<-data.p*100
data<-data.frame(cbind(x,data.n,prop,pos,len,nsnp,pval))
data.p<-subset(data,data$pval<=2e-05)
data.re<-data.p %>% group_by(new=cumsum(c(1,diff(x)!=1))) %>%
summarise(pos1=min(pos),pos2=max(pos),len=sum(len),nsnp=sum(nsnp),n.ind=mean(data.n),per.ind=mean(prop))
Chr<-rep(1,length(data.re$pos1))
DF.i<-data.frame(cbind(Chr,data.re))
在拥有单个数据框(脚本中的DF)时运行它没有问题。但是,我需要将此代码传递给特定列表的所有元素(数据框)。列表中的所有不同DF具有相同的结构和列(当然也包括DF $ NSNP和DF $ KB)。结果需要存储在不同的列表中。这是问题开始的地方,我尝试使用apply系列循环遍历列表并取得任何成功。你能帮我吗?
此外,如果您看到任何效率提升,请随时加入!谢谢=)