【问题标题】:recommenderlab, Error in asMethod(object) : invalid class 'NA' to dup_mMatrix_as_geMatrix推荐实验室,asMethod(object) 中的错误:dup_mMatrix_as_geMatrix 的类“NA”无效
【发布时间】:2013-09-02 20:41:24
【问题描述】:

我正在尝试将矩阵更改为可以在推荐实验室包的功能中使用的结构。

datafile1 <- as(datafile1,"matrix")
datafile1
     name1 name2 rating1 rating2 rating3 rating4 rating5 rating6
[1,] "1"   "a"   "0"     "0"     "1"     "0"     "0"     "0"    
[2,] "2"   "d"   "0"     "0"     "1"     "0"     "0"     "0"    
[3,] "3"   "x"   "1"     "0"     "1"     "0"     "0"     "0"    
[4,] "4"   "b"   "0"     "1"     "1"     "0"     "0"     "0"  

library(recommenderlab)
datafile1 <- as(datafile1, "realRatingMatrix")

这是结果:

asMethod(object) 中的错误:dup_mMatrix_as_geMatrix 的类“NA”无效

有人知道这里出了什么问题吗?

【问题讨论】:

  • 您需要发布允许我们重现此错误的代码。您似乎有一个抛出错误的对象 datafile1,但我们无法查看所述对象。
  • 感谢您的评论。我希望我的编辑会有所帮助。

标签: r recommendation-engine


【解决方案1】:

问题是RealRatingMatrix 类扩展了Matrix,而Matrix 没有实现包含characters 的矩阵。先将matrix 转换为numeric,然后再转换。

# Recreate data
datafile1<-read.table(textConnection('
name1 name2 rating1 rating2 rating3 rating4 rating5 rating6
"1"   "a"   "0"     "0"     "1"     "0"     "0"     "0"    
"2"   "d"   "0"     "0"     "1"     "0"     "0"     "0"    
"3"   "x"   "1"     "0"     "1"     "0"     "0"     "0"    
"4"   "b"   "0"     "1"     "1"     "0"     "0"     "0"  
'),header=TRUE)
datafile1<-as.matrix(datafile1)

# Convert to numeric (by arbitrarily map the characters to numbers.)
datafile1<-sapply(data.frame(datafile1),as.numeric)

# Create real rating matrix
as(datafile1, "realRatingMatrix")
# 4 x 8 rating matrix of class ‘realRatingMatrix’ with 32 ratings.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多