所以我已经有了一个TDM,但它在excel上。所以我把它保存为CSV。现在我想做一些分析,但我不能使用tm包将其作为TDM加载。我的CSV看起来像这样:
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
我尝试先转换为语料库和其他东西,但如果我尝试使用像inspect(tdm)这样的函数,它会返回错误,如此或类似错误。
Error in `[.simple_triplet_matrix`(x, docs, terms) :
我真的不相信没有办法以正确的格式导入它,任何建议?提前谢谢。
答案 0 :(得分:0)
首先尝试将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
>