Итак, у меня есть этот цикл, и он записывает несколько файлов csv, каждый из которых был добавлен из результатов запуска. Как вы можете видеть ниже, этот конкретный цикл запускает статистическую функцию (zScore) для каждой строки подмножества из gex против mxy, затем публикует результаты для каждой строки, а затем переходит к следующему подмножеству gex.
Мой вопрос: вместо того, чтобы записывать добавленный результат в виде файла csv, есть ли способ, которым я могу просто создать кадр данных в цикле, который выглядит одинаково?
Спасибо за вашу помощь.
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