2015-10-15 3 views
-1

У меня есть файл csv, содержащий идентификатор пользователя, ISBN и букрандирование, разделенные символом «;». Я хочу показать эти данные как разреженную матрицу с идентификатором userid в качестве своих строк, ISBN в качестве столбца и буксочетание - это его ценность. Я использую команду 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

установить заголовок как 'TRUE' в вашем read.csv, поскольку заголовок присутствует в файле –

+0

Ваша матрица здесь не является числовой. Не имеет смысла создавать разреженную версию матрицы, если она не является числовой. – LyzandeR

ответ

0

Пакет Matrix имеет конструктор, созданный специально для вашего типа данных: сначала преобразует матрицу в кадр данных.

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

Я получаю сообщение об ошибке: Ошибка: неожиданный ')' in "x = matrix $ Book.Rating)" –

+0

Это не работает, потому что матрица не является числовой – LyzandeR

+0

, пожалуйста, предложите мне, как разрешить это –

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