2016-07-22 68 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循环内的子集内的问题。试着打印我,你会发现它给出了正确的索引。现在调整您的代码以正确使用这些索引 –

相关问题