2016-07-22 110 views
1

我想將列中每個單元格的內容導出到單個.txt文件,同時單元格的內容也作爲文件名.txt文件。我在下面的R中有這個腳本,但由於某些原因,循環i in 1:length()僅適用於列,即列A:Z,但不適用行A1:A26。將CSV單元格內容導出爲.txt,其內容爲文件名(R)

任何幫助讓這個腳本導出行的內容A1:A26將不勝感激!

上下文:這是爲了從自然語言處理的CSV中的非結構化文本創建MALLET語料庫。

filenames <- names(NLPL) 
for (i in 1:length(NLPL)){ 
    outname <- paste("", filenames[i], ".txt", sep= "") 
    write.table(NLPL[[i]], outname, col.names= F, row.names= F, quote= F) 
} 
+0

嘗試使用'nrow',而不是'length'。 – ytk

+0

感謝@ytk,我以前試過,但我得到了'.subset2(x,i,exact = exact)中的錯誤:下標超出範圍' –

回答

1

你可以以同樣的方式爲1:length(NLPL)1:ncol(NLPL)使用1:nrow(NLPL),但我更喜歡使用seq_along()

對於列,我使用seq_along(NLPL),對於行,我使用seq_along(NLPL[,1])。也許有人知道比[,1]更好的方式來指定我們沿着一列來看序列。

對於行:

filenames <- names(NLPL) 
for (i in seq_along(NLPL[,1])){ 
    outname <- paste("", filenames[i], ".txt", sep= "") 
    write.table(NLPL[[i]], outname, col.names= F, row.names= F, quote= F) 
} 

對於列:

filenames <- names(NLPL) 
for (i in seq_along(NLPL)){ 
    outname <- paste("", filenames[i], ".txt", sep= "") 
    write.table(NLPL[[i]], outname, col.names= F, row.names= F, quote= F) 
} 
+0

Upvoted。 'seq_along()'是專業人士使用的;見例如R本身有許多R函數。 –

+0

謝謝,我仍然在使用'seq_along()'時使用'subset2(x,i,exact = exact):下標越界'時出錯,正如我使用'nrow()' - 嘗試瞭解更多這個錯誤。 –

+0

這是for循環內的子集內的問題。試着打印我,你會發現它給出了正確的索引。現在調整您的代碼以正確使用這些索引 –

相關問題