将CSV格式的术语文档矩阵导入到R
问题描述:
因此,我已经有了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) :
我真的不相信没有办法以正确的格式导入它,任何建议吗?提前致谢。
答
先尝试将CSV转换为稀疏矩阵。我的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
>
Awsome,稀疏矩阵解决了它!谢谢! –