Jadi saya memiliki loop ini, dan ia menulis beberapa file csv, dengan masing-masing file telah ditambahkan dari hasil proses. Seperti yang Anda lihat di bawah, loop khusus ini menjalankan fungsi statistik (zScore) di setiap baris subset dari gex terhadap mxy, lalu menerbitkan hasil untuk setiap baris, lalu berpindah ke subset gex berikutnya.
Pertanyaan saya adalah, alih-alih menulis hasil yang ditambahkan sebagai file csv, adakah cara agar saya bisa membuat kerangka data di dalam loop yang terlihat sama?
Terima kasih atas bantuan baik Anda.
gex <- data.frame("sample" = c("BIX","HEF","TUR","ZOP","VAG"),
"TCGA-F4-6703-01" = runif(5, -1, 1),
"TCGA-DM-A28E-01" = runif(5, -1, 1),
"TCGA-AY-6197-01" = runif(5, -1, 1),
"TCGA-A6-5657-01" = runif(5, -1, 1))
colnames(gex) <- gsub("[.]", "_",colnames(gex))
listx <- c("TCGA_DM_A28E_01","TCGA_A6_5657_01")
mxy <- data.frame("TCGA-AD-6963-01" = runif(5, -1, 1),
"TCGA-AA-3663-11" = runif(5, -1, 1),
"TCGA-AD-6901-01" = runif(5, -1, 1),
"TCGA-AZ-2511-01" = runif(5, -1, 1),
"TCGA-A6-A567-01" = runif(5, -1, 1))
colnames(mxy) <- gsub("[.]", "_",colnames(mxy))
zScore <- function(x,y)((as.numeric(x) - as.numeric(rowMeans(y,na.rm=T)))/as.numeric(sd(y,na.rm=T)))
for(i in seq(nrow(mxy))){
for(colName in listx){
zvalues <- zScore(gex[i,colName],
mxy[i,])
geneexptest <- data.frame(gex$sample[i], zvalues, row.names = NULL,
stringsAsFactors = TRUE)
write.table(geneexptest, file = paste0(colName, "mxyinput", ".csv"),
row.names=FALSE, col.names=FALSE, quote=F,
sep = ",", dec = ".", append=(i > 1))
}
}
rbind
ataucbind
untuk menambahkan baris atau kolom di setiap iterasi loop? - person Sam Firke   schedule 05.02.2015rbind
- tetapi solusinya denganlapply
lebih baik seperti yang dia jelaskan. - person Sam Firke   schedule 05.02.2015