2015-10-15 222 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

請建議我如何解決這個 –