2014-09-28 112 views
1

我想阅读多个文本文件来做自动文本分析。我的文件是txt文件,我使用list.files列出目录中的所有文件。每个文本文件都是新闻文章。代码看起来像这样。阅读多个文本文件做自动文本分析

lff <- list.files(path = "the path", pattern = paste('*.txt*',sep=""), full.names = TRUE, recursive = TRUE, include.dirs = TRUE) 
df<-ldply(lff, readLines) 

我用readlines方法阅读我的文章,但是这个命令给了我一个错误,如以下。

Error in list_to_dataframe(res, attr(.data, "split_labels")) : 
Results do not have equal lengths 

read.table不适合我的分析。无论如何我都会找到为每一行导入这些文本。

**我试过

df<-ldply(lff, readLines(warn=FALSE)) 

但它采取了永远导入这些文件。我只有300多个文件,所以它不应该花这么长时间。问题是什么?

**

每个文件都是这样的。

上周在Palm Beach县委员会为春季训练场提供资金之前进行的辩论看起来有点像在Brevard县一直在进行的维州华盛顿国民队春季训练有多么多的辩论。只有数字更大。

因为我有我的300多个文件的列表,所以我在lff对象中有300多行。我想要导入每一行中的每个文本。我还将为每行添加一些附加数据,如每篇文章的日期和作者。

在此先感谢!

+0

你可以在这里粘贴一个小文本文件吗?我无法达到您的想法,您希望支持您的后续分析的结构是什么? ('ldply'会给你一个'data.frame',你能解释哪个'fields'会构造'data.frame'吗?) – hs3180 2014-09-28 07:04:07

+0

@ hs3180谢谢,我编辑了我的问题 – user3077008 2014-09-28 07:11:01

回答

0

我不知道是什么文章是(它是一个文件?),但我想你会需要这个。

df <- ldply(lff, function(file) { 
    content <- readLines(file) 
    date <- smth_date 
    author <- smth_author 
    data.frame(content = content, date = date, author = author, stringsAsFactors = FALSE) 
}) 

PS:不要忘记,stringsAsFactors = FALSE,自动转换的因素总是给我意想不到的错误。