मेरे पास आर में कारकों का एक मैट्रिक्स है और इसे प्रत्येक कारकों के सभी संभावित स्तरों के लिए डमी चर के 0 मैट्रिक्स में परिवर्तित करना चाहते हैं।आर: स्पैर मैट्रिक्स रूपांतरण
हालांकि यह "डमी" मैट्रिक्स बहुत बड़ा है (916 9 0x165 9 3) और बहुत स्पैस। मुझे इसे एक स्पैर मैट्रिक्स में स्टोर करने की ज़रूरत है, अन्यथा यह मेरे 12 जीबी रैम में फिट नहीं है।
वर्तमान में, मैं निम्नलिखित कोड का उपयोग कर रहा है और यह बहुत अच्छा काम करता है और सेकंड लेता है:
library(Matrix)
X_factors <- data.frame(lapply(my_matrix, as.factor))
#encode factor data in a sparse matrix
X <- sparse.model.matrix(~.-1, data = X_factors)
हालांकि, मैं आर में e1071 पैकेज का उपयोग, और अंततः write.matrix.csr()
साथ प्रारूप libsvm को यह मैट्रिक्स सहेजना चाहते , तो सबसे पहले मुझे अपने स्पैर मैट्रिक्स को स्पैर्सएम प्रारूप में परिवर्तित करने की आवश्यकता है।
मैं करने की कोशिश की:
library(SparseM)
X2 <- as.matrix.csr(X)
लेकिन यह बहुत जल्दी मेरी राम भरता है और अंत में दुर्घटनाओं आर। मुझे संदेह है कि आंतरिक रूप से, as.matrix.csr
पहले स्पैस मैट्रिक्स को घने मैट्रिक्स में परिवर्तित करता है जो मेरे कंप्यूटर मेमोरी में फिट नहीं होता है।
मेरा दूसरा विकल्प स्पैरसेएम प्रारूप में सीधे मेरे स्पैर मैट्रिक्स को बनाना होगा।
मैंने as.matrix.csr(X_factors)
की कोशिश की लेकिन यह कारकों के डेटा-फ्रेम को स्वीकार नहीं करता है।
क्या स्पैरसेम पैकेज में sparse.model.matrix(~.-1, data = X_factors)
के बराबर है? मैंने प्रलेखन में खोज की लेकिन मुझे नहीं मिला।
यह पूरी तरह से काम करता है। त्वरित जवाब के लिए धन्यवाद। –