如何从文档术语矩阵中删除NaN值

时间:2012-06-21 19:39:40

标签: r machine-learning

我正在使用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上存在的某些单词有关,而与原始矩阵无关。

如何在结果矩阵中更改0的NaN值?

这会改变分类结果吗?

任何帮助非常感谢!谢谢!

2 个答案:

答案 0 :(得分:3)

使用is.na():

查找NaN值的简单方法
data<-c(1,2,NaN,4,2)
data[is.na(data)]<-0
data

[1] 1 2 0 4 2

答案 1 :(得分:0)

我是RTextTools的首席开发人员,如果您能向我发送此错误的示例,我将非常感谢。 originalMatrix参数是在过去两个月内引入的,并且可能存在一些关于如何处理的问题。你可以在我的网站上发送电子邮件(http://www.timjurka.com/)