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 к матрице, а затем к relratingmatrix, но заполняет пустые ячейки «0», что неверно. – Nelson

+0

Te решение: datamat_2 <-new ("realRatingMatrix", data = datamat). Существует ссылка: http: //www.inside-r.org/packages/cran/recommenderlab/docs/colSds – Nelson

Смежные вопросы