2017-09-13 131 views
1

因此,我已经有了TDM,但它在Excel上。所以我将它保存为CSV。现在我想做一些分析,但是我不能将它作为使用tm包的TDM加载。我的CSV看起来是这样的:将CSV格式的术语文档矩阵导入到R

  item01 item02 item03  item04 


red   0   1   1   0 
circle  1   0   0   1 
fame  1   0   0   0 
yellow  0   0   1   1 
square  1   0   1   0 

所以我一直无法加载该文件作为TDM,到目前为止,我已经试过最好是这样的:

myDTM <- as.DocumentTermMatrix(df, weighting = weightBin) 

但它加载1对所有细胞

<<DocumentTermMatrix (documents: 2529, terms: 1952)>> 
Non-/sparse entries: 4936608/0 
Sparsity   : 0% 
Maximal term length: 27 
Weighting   : binary (bin) 
Sample    : 

      Terms 
Docs   item01 item02 item03 item04 
     Red  1  1  1  1     
     Circle  1  1  1  1   
     fame  1  1  1  1 

我第一次尝试转换为语料库和其他的东西,但如果我尝试使用像检查(TDM)的任何函数返回一个错误,这样的或类似的。

Error in `[.simple_triplet_matrix`(x, docs, terms) : 

我真的不相信没有办法以正确的格式导入它,任何建议吗?提前致谢。

回答

0

先尝试将CS​​V转换为稀疏矩阵。我的CSV与您的CSV不同,因为我自己输入了它,但它是一样的想法。

> library(tm) 
> library(Matrix) 
> myDF <- read.csv("my.csv",row.names=1,colClasses=c('character',rep('integer',4))) 
> mySM <- Matrix(as.matrix(myDF),sparse=TRUE) 
> myDTM <- as.DocumentTermMatrix(mySM,weighting = weightBin) 
> inspect(myDTM) 

<<DocumentTermMatrix (documents: 5, terms: 4)>> 
Non-/sparse entries: 7/13 
Sparsity   : 65% 
Maximal term length: 6 
Weighting   : binary (bin) 
Sample    : 
     Terms 
Docs  item01 item02 item03 item04 
    circle  1  1  0  0 
    fame  1  0  0  0 
    red   0  0  0  0 
    square  1  0  1  0 
    yellow  0  0  1  1 
> 
+0

Awsome,稀疏矩阵解决了它!谢谢! –