当我将 inspect() 对象保存在 R 的 tm 包中时,它会打印到屏幕上。它确实将我想要的数据保存在 data.frame 中,但我有数千个文档要分析,而打印到屏幕上正在耗尽我的内存。
library(tm)
data("crude")
matrix <- TermDocumentMatrix(corpus,control=list(removePunctuation = TRUE,
stopwords=TRUE))
out= data.frame(inspect(matrix))
我已经尝试了我能想到的所有技巧。 capture.output() 改变对象(不是想要的效果),sink() 也是如此。 dev.off() 不起作用。 invisible() 什么都不做。不出所料,suppressWarnings()、suppressMessages() 和 try() 什么都不做。检查命令中没有静默或安静选项。
我能得到的最接近的是
out= capture.output(inspect(matrix))
out= data.frame(out)
这显然没有给出相同的 data.frame,但如果我需要沿着这条路走下去,很容易。任何其他(不那么hacky)的建议都会有所帮助。谢谢。
Windows 7的
64 位 R-3.0.1
tm 包是最新版本 (0.5-9.1)。
最佳答案
然后在捕获内部分配:
capture.output(out <- data.frame(inspect(matrix))) -> .null # discarding this
但真的,
inspect
用于目视检查,所以也许尝试as.data.frame(as.matrix(matrix))
相反(顺便说一句
matrix
是一个非常不幸的变量名称,因为它是一个基函数)。
关于r - 你如何在 R 的 tm 包中默默地保存一个检查对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18749421/