2015-09-27 57 views
1

這裏,我正在查看R中的文件mtcars。這是一個可用於將列寫入11個單獨文件的循環,因爲數據集中有11列。在R中構建一個循環,將所有行寫入單獨的文件,每個文件一行

for(i in (1:length(mtcars[1, ]))) 
write.table(mtcars[i], file=paste("mtcars", as.character(i), ".txt", 
sep=""), row.names=FALSE, sep="\t"); 

我只是好奇,如果你要改變它將所有列寫入單獨的文件,你會怎麼做?現在,我知道做一個修改就是我們將第一行長度參數設置爲mtcars [,1],但我很好奇你能替代我嗎?代碼的其他部分是否需要進行其他替換?

編輯:缺失報價

+0

我認爲這將是,如果非常有幫助你可以告訴我代碼中哪些部分涉及按列來組織,並討論如何將它們轉換爲ro的方式WS。 – cambelot

+0

我不明白這句話*我只是好奇,如果要將它變成將所有列寫入單獨的文件,您將如何執行此操作?*。那不是你已經在做什麼? –

+0

我在R中構建循環將所有行寫入單獨的文件,每個文件一行。我上面的是用於列的循環。我在問我如何使用類似的邏輯並修改行的代碼。 – cambelot

回答

2

您的代碼已將每列寫入單獨的文件。你想複製整個表11次嗎?在這種情況下,只是write.table(mtcars, ...

編輯:試試這個:

for(i in 1:nrow(mtcars) 
write.table(mtcars[i,], file=paste("matchers", as.character(i), ".txt", 
sep=""), row.names=FALSE, sep="\t") 

或不使用for循環:

sapply(mtcars, 1:nrow(mtcars), function(i) 
    write.table(mtcars[i,], 
       file=paste0("matchers", i, ".txt"), 
       row.names=FALSE, sep="\t")) 

或者

library(dplyr) 

mtcars %>% 
    mutate(index = 1:n()) 
    rowwise %>% 
    do(write.table(., 
       file=paste0("matchers", .$index, ".txt"), 
       row.names=FALSE, sep="\t")) 
+0

我的意思是要求我如何做到這一點行,因爲我老實說卡在那裏。 – cambelot

相關問題