我正在尝试创建一个嵌套的for循环,但不知何故,mdata
的维度大多不正确。例如,length(mdata[[1:5]])
的值几乎都是81,当它们应该是81,50,60等时。在前五个之后,length(mdata)
变为全部108个。我的嵌套循环有问题吗?
代码:
chrdata <- list()
mdata <- list()
res_df <- list()
for(i in 1:24) {
l <- length(olap[[i]])
for (j in 1:l) {
#for each row in granges object
sub_olap <- as.data.frame(mcols(subsetByOverlaps(all_list, olap[[i]][j])))
chrdata[[j]] <- data.frame(median(sub_olap$log2Ratio), #make metadata a single row and determine median
paste0(sub_olap$pvalue, collapse = ","),
paste0(sub_olap$length, collapse = ","),
paste0(sub_olap$sample, collapse = ","), stringsAsFactors = F)
colnames(chrdata[[j]]) <- c("med_log2Ratio", "pvalue", "length", "sample")
}
mdata[[i]] <- chrdata
mdf <- data.frame(matrix(unlist(mdata[[i]]), nrow = l, byrow = T))
colnames(mdf) <- c("med_log2Ratio", "pvalue", "length", "sample")
res_df[[i]] <- cbind(chr[[i]], mdf)
}