2

我已經將數據幀轉換爲稀疏矩陣,以避免內存問題並節省空間,一旦原始數據不適合內存。將稀疏矩陣(dgCMatrix)轉換爲realRatingMatrix

現在,我需要這個稀疏矩陣轉換爲realratingmatrix這樣我就可以建立與recommenderlab的推薦,但我得到了以下錯誤:

Error in as(aux_max, "realRatingMatrix") : 
    no method or default for coercing 「dgCMatrix」 to 「realRatingMatrix」 

我的示例代碼如下:

library(Matrix) 
UserID<-c(10090,10090,10090,10316,10316) 
MovieID <-c(63155,63530,63544,63155,63545) 
Rating <-c(2,2,1,2,1) 
trainingData<-data.frame(UserIDa,MovieID,Rating) 

UIMatrix <- sparseMatrix(i = as.integer(as.factor(trainingData$UserID)), 
         j = as.integer(as.factor(trainingData$MovieID)), 
         x = trainingData$Rating 
         ) 

dimnames(UIMatrix) <- list(sort(unique(trainingData$UserID)), 
          sort(unique(trainingData$MovieID))) 

rrm <- as(UIMatrix, "realRatingMatrix") 

任何人都可以提供一些建議如何解決?

回答

2

嗯,我想我得到了答案。 我強制將「dgCMatrix」改爲「矩陣」,然後改爲「realratingmatrix」。 似乎工作正常。

rrm<- as( as(UIMatrix, "matrix") , "realRatingMatrix") 
+0

此解決方案不是正確無誤的。實際上,這種方法會將dgCMatrix強制轉換爲矩陣,然後重新轉換矩陣,但會填充不正確的「0」的空單元格。 – Nelson 2015-02-12 17:42:03

+0

Te解決方案是:datamat_2 <-new(「realRatingMatrix」,data = datamat)。有一個鏈接:http://www.inside-r.org/packages/cran/recommenderlab/docs/colSds – Nelson 2015-02-12 17:43:19