我正在循环遍历我数据集中存在的所有基因并创建一个矩阵。 矩阵列为 49,行将取决于 rsid。 我想创建一个存储所有基因信息的大矩阵。 我正在尝试在 R 中使用 rbind 选项,但它只给了我最后一个基因值。
for(k in 1:3) { ##for gene
z <- 0
for(i in 1:49){ #i=tissue
y <- list.dfs[[i]]$gene %in% genes_union[k] ##y stores the gene
x <- list.dfs[[i]][y,]$rsid ## store the snp for the gene for a particular tissue
z <<- unique(append(z,x))} ##get only unique SNP for that gene and remove duplicates(SNP can be shared among tissues and will create duplicate value)
z <- z[2:length(z)]
models_df_gene1 <- matrix(,nrow=length(z),ncol=49)
colnames(models_df_gene1) <- col_names
rownames(models_df_gene1) <- z
for(t in 1:49){
u <- which(list.dfs[[t]]$gene %in% genes_union[k])
a <- list.dfs[[t]][u,]
for(j in 1:length(z)){
b <- which(z[1:length(z)] %in% a$rsid[j])
models_df_gene1[b,t] <- a$weight[j]
models_df_gene1 <- replace(models_df_gene1, is.na(models_df_gene1), 0)}
}
file_chr22 <- rbind(models_df_gene1)
#write.table(models_df_gene1,file=paste0(genes_union[k],".txt"),sep="\t",row.names=T,col.names=T)
}
有谁知道当列长相同时如何继续添加到矩阵上?