2013-09-02 13 views
5

Matristeyi, beginenderlab paketinin işlevlerinde kullanabileceğim bir yapıya dönüştürmeye çalışıyorum. asMethod (nesnenin) içindesuggestenderlab, asMethod (object) hatası: dup_mMatrix_as_geMatrix için geçersiz sınıf 'NA'

Hata: Geçersiz sınıf 'NA'

kimse yanlış burada neler olduğu hakkında bir fikri var mı dup_mMatrix_as_geMatrix için

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") 

Bu

sonucudur?

+0

Bu hatayı yeniden üretmemize izin veren bir kod göndermeniz gerekir. Hata attığımız bir veri datafile1'iniz var gibi görünüyor, ancak söz konusu nesneye bakmanın hiçbir yolu yok. –

+0

Yorumlarınız için teşekkür ederiz. Umarım düzenlemem yardımcı olur. – rdatasculptor

cevap

14

Sorun, RealRatingMatrix sınıfının Matrix ve Matrix'un character s aralıklarında bu matrisleri uygulamamasıdır. Önce matrix'u bir numeric'a dönüştürün, sonra dönüştürün.

# 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. 
+0

teşekkürler! Bu gerçeği tamamen gözden kaçırdım. Şuan çalışıyor. – rdatasculptor

İlgili konular