我正在使用RTextTools构建一个包含矩阵和模型的训练集,之后我会将其应用于不同的文档以对其进行分类。
编辑: 该矩阵是一个文档术语矩阵
我遇到的问题是,有时在处理某些文档时,当我使用以下代码创建new_matrix
时
new_matrix <- create_matrix(data$document,language="english", removeNumbers=FALSE, removePunctuation=TRUE, removeStopwords=TRUE, toLower=TRUE, stemWords=TRUE, minDocFreq=1,weighting=weightTfIdf,originalMatrix=matrix)
我会得到一些NaN
值,这会导致我的语料库失败
corpus <- create_corpus(new_matrix,data$value, testSize=1:100,virgin=FALSE)
出现的错误是
Error in .csr.coo(x) : NA/NaN/Inf in foreign function call (arg 4)
我不确定为什么会出现NaN
值。我猜测这可能是因为某些词在new_matrix
中存在,而在原始矩阵中不存在。
我如何将结果矩阵中的NaN
值更改为0?
这样做会改变分类的结果吗?
任何帮助都非常感激!谢谢!
回答:
使用is.na()查找NaN值的简单方法:
data<-c(1,2,NaN,4,2)data[is.na(data)]<-0data
[1] 1 2 0 4 2