आर

2012-04-21 18 views
5

में गैर नकारात्मक मैट्रिक्स गुणन प्रदर्शन करना मैं आर में एक विरल मैट्रिक्स हैआर

मैं अब

data.txt है एक पाठ फ़ाइल मैं अजगर का उपयोग करके बनाए, यह 3 के होते हैं आर पर गैर नकारात्मक मैट्रिक्स गुणन प्रदर्शन करना चाहते कॉलम जहां पहले कॉलम को निर्दिष्ट पंक्ति संख्या, दूसरे स्तंभ संख्या और तीसरी मूल्य

data.txt

1 5 10 
3 2 5 
4 6 9 

मूल data.txt 1640 में शामिल है 09 पंक्तियों जो 250000x250000 विरल मैट्रिक्स

मैं NMF पुस्तकालय का इस्तेमाल किया और मैं

>x=scan('data.txt',what=list(integer(),integer(),numeric())) 
>library('Matrix') 
>R=sparseMatrix(i=x[[1]],j=x[[2]],x=x[[3]]) 

>res<-nmf(R,3) 

कर रहा हूँ यह मेरे समारोह में एक त्रुटि त्रुटि (कक्षाएं, fdef, mtable) दे रहा है के लिए डेटा है: खोजने में असमर्थ समारोह NMF के लिए एक विरासत विधि, हस्ताक्षर के लिए "dgCMAtrix", "लापता", "लापता"

किसी को भी मदद कर सकता है मुझे यह पता लगाने की मैं गलत

+0

क्यों -1 कारण ??? – user1344389

+0

अपना उदाहरण चलाने के लिए एक उदाहरण स्पैर मैट्रिक्स, और (काम करने) कोड बनाने के लिए कोड दें। क्या आपका वास्तव में मतलब है -> वहां, या वह होना चाहिए <-? –

+0

प्रश्न संपादित किया गया मेरा बुरा – user1344389

उत्तर

3

पहले पी क्या कर रहा हूँ रॉबलेम यह है कि आप एनएमएफ को डीजीसीमैट्रिक्स प्रदान कर रहे हैं।

> class(R) 
[1] "dgCMatrix" 
attr(,"package") 
[1] "Matrix" 

मदद यहाँ है:

help(nmf) 

तरीके अनुभाग देखें। यह एक असली मैट्रिक्स चाहता है। प्रविष्टियों की संख्या के कारण, as.matrix के साथ समन्वय आपके लिए बहुत अधिक सेवा नहीं होने की संभावना है।

> nmf(as.matrix(R)) 
Error: NMF::nmf : when argument 'rank' is not provided, argument 'seed' is required to inherit from class 'NMF'. See ?nmf. 

की यह एक रैंक देता हूँ:

अब, अपने उदाहरण डेटा के साथ भी, एक मैट्रिक्स के लिए बलात्कार अपर्याप्त लिखा है

> nmf(as.matrix(R),2) 
Error in .local(x, rank, method, ...) : 
    Input matrix x contains at least one null row. 

और वास्तव में यह करता है:

> R 
4 x 6 sparse Matrix of class "dgCMatrix" 

[1,] . . . . 10 . 
[2,] . . . . . . 
[3,] . . 5 . . . 
[4,] . . . . . 9 
+0

पर कोई परिणाम नहीं मिला ठीक है तो समाधान क्या है? क्या आप कह रहे हैं कि यह संभव नहीं है? – user1344389

+1

मैट्रिक्स के रूप में प्रस्तुत आपका मूल डेटा वास्तव में वही हो सकता है जो आप चाहते हैं (लेकिन प्रश्न में कोई रैंक निर्दिष्ट नहीं किया गया था)। दुर्भाग्यवश, इस तरह के एक मैट्रिक्स आपकी स्मृति में फिट नहीं होगा। –

+1

ठीक है तो अगर आपका उत्तर कोई जवाब नहीं है तो क्या आप इसे हटा सकते हैं ताकि अन्य इसे – user1344389