ดังนั้นฉันจึงมีลูปนี้ และมันเขียนไฟล์ csv หลายไฟล์ โดยแต่ละไฟล์ถูกต่อท้ายจากผลลัพธ์ของการรัน ดังที่คุณเห็นด้านล่าง การวนซ้ำนี้เรียกใช้ฟังก์ชันทางสถิติ (zScore) ในแต่ละแถวของชุดย่อยจาก gex ต่อ mxy จากนั้นเผยแพร่ผลลัพธ์สำหรับแต่ละแถว จากนั้นย้ายไปยังชุดย่อยถัดไปของ gex
คำถามของฉันคือ แทนที่จะเขียนผลลัพธ์ต่อท้ายเป็นไฟล์ csv มีวิธีที่ฉันสามารถสร้าง dataframe ภายในลูปที่มีลักษณะเหมือนกันได้หรือไม่
ขอบคุณสำหรับความช่วยเหลือของคุณ
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
หรือcbind
เพื่อเพิ่มแถวหรือคอลัมน์ในการวนซ้ำแต่ละครั้งของลูป - person Sam Firke   schedule 05.02.2015rbind
- แต่วิธีแก้ปัญหาของเขาด้วยlapply
นั้นดีกว่าในขณะที่เขาอธิบาย - person Sam Firke   schedule 05.02.2015