2013-02-20 5 views
5

मैं इस तरह से मैट्रिक्स की एक सरणी बनाना चाहता हूं कि मैं पहले एनए मानों के साथ के मैट्रिस का सरणी बनाउंगा और फिर के ऊपर लूप बनाऊंगा और सरणी के माध्यम से प्रत्येक के'थ मैट्रिक्स को अपडेट करूँगा।आर मैट्रिस की एक सरणी बना रहा है

कोई सुझाव?

उत्तर

8

मैं शायद बात को अनदेखा कर रही है, लेकिन नहीं:

k = 2; n=3; m = 4 
array(NA, c(n,m,k)) 

, , 1 

    [,1] [,2] [,3] [,4] 
[1,] NA NA NA NA 
[2,] NA NA NA NA 
[3,] NA NA NA NA 

, , 2 

    [,1] [,2] [,3] [,4] 
[1,] NA NA NA NA 
[2,] NA NA NA NA 
[3,] NA NA NA NA 

आप क्या चाहते हैं आप दे? फिर आप सामान्य के रूप में पाश कर सकते हैं:

R> for(k in 1:2){print(a[,,k])} 
+0

या "सरल" कार्यों के लिए, आर के वेक्टरेशन के लिए धन्यवाद, लूप की भी आवश्यकता नहीं है। –

2

शब्दावली से सावधान रहें :-)। जैसा कि CSGillespie इंगित करता है, आप R में एक एन-रैंक सरणी परिभाषित कर सकते हैं। वैकल्पिक रूप से, आप list चर बना सकते हैं, जिसमें प्रत्येक प्रविष्टि में मैट्रिक्स होता है। उत्तरार्द्ध का लाभ यह है कि matrices अलग आकार के हो सकता है। नुकसान यह है कि यह आंतरिक राज्य बनाने के लिए और अधिक दर्दनाक हो सकता है।

उदा।

mat1 <- matrix(NA, 3,5) 
mat2 <- matrix(NA, 4,7) 
matlist <- list(mat1=mat1,mat2=mat2) 
संबंधित मुद्दे