我希望将每个股票行情录包含多个文本文档,并将其存储为单个语料库。我已经读过有关创建“列表中的列表”的信息,但这对我不起作用。例如,“文本挖掘和termdocumentmatrix”给出以下错误:没有适用于'TermDocumentMatrix'的适用方法应用于类“ list的对象。
我可以将所有内容放入for循环中,但这不是我想要的,因为我希望可以灵活地使用主体。
有人可以帮我解决如何有效解决此问题吗?我的代码如下。预先谢谢!
Stocks <- list("AAPL", "AMZN", "BIG", "BYD", "CTWS", "EAT", "FB", "GOOG", "GRMC", "HRL", "MGM", "MSFT",
"NEM", "PKS", "RGLD", "SCCO", "SLP", "TCO", "USGL", "WDFC"
)
BigList <- list()
for (stock in Stocks) {
filepath <- file.path("C:/Users/......./Stocks10K", stock)
a <- Corpus(DirSource(filepath))
a <- tm_map(a, removePunctuation)
a <- tm_map(a, removeNumbers)
a <- tm_map(a, tolower)
a <- tm_map(a, removeWords, stopwords("en"))
a <- tm_map(a, stripWhitespace)
name <- paste('Data:', stock, sep='')
tmp <- list(Text = a)
BigList[name] <- tmp
rm(tmp, stock, name, filepath, a)
}
#Create Term Document Matrix and create Matrix
tdm <- TermDocumentMatrix(BigList['Data:AAPL'])
m <- as.matrix(tdm)
似乎您已正确完成了所有工作,除了将输入从BigList
中删除。 [
将返回一个列表(在您的情况下包含一个元素)-您需要使用[[
。试试:
tdm <- TermDocumentMatrix(BigList[['Data:AAPL']])
代替。
https://cran.r-project.org/doc/manuals/R-lang.html#Indexing有更多信息,包括此注释(以防我在上面说的不清楚):
对于列表,通常使用[[选择单个元素,而 [返回所选元素的列表。