2015-10-15 166 views
-1

我有一个包含用户标识,ISBN和由“;”分隔的预订的csv文件。我想将这些数据显示为一个稀疏矩阵,其中userid作为其行,ISBN作为其列,而bookrating是它的值。 我正在使用as.matrix命令,但它不起作用。这是我的代码。使用R创建稀疏矩阵

matrix <- as.matrix(read.csv("BookRating.csv", nrows=50,sep=";",header=FALSE)) 

和放出来是这样的:

User.ID.ISBN.Book.Rating 
1  276725;034545104X;0 
2  276726;0155061224;5 
3  276727;0446520802;0 
4  276729;052165615X;3 
5  276729;0521795028;6 
6  276733;2080674722;0 
7  276736;3257224281;8 

有谁能够告诉我怎样才能建立一个稀疏矩阵?

+0

在您的read.csv中将标题设置为“TRUE”,因为标题存在于文件 –

+0

此处的矩阵不是数字。创建矩阵的稀疏版本除非是数字,否则没有意义。 – LyzandeR

回答

0

Matrix包具有专为您的数据类型制作的构造函数: 首先将矩阵转换为数据帧。

UIMatrix <- sparseMatrix(i = matrix$User.ID, 
         j = matrix$ISBN, 
         x = matrix$Book.Rating) 
+0

我得到一个错误:错误:意外')'在“x =矩阵$ Book.Rating)” –

+0

这不会工作,因为矩阵不是数字 – LyzandeR

+0

请建议我如何解决这个 –