आर

2010-07-07 9 views
24

में एक बहुआयामी सरणी पर लागू करने का उपयोग करके मैं सोच रहा हूं कि एक बहुआयामी सरणी पर उपयोग कैसे करें।आर

A <- array(0, c(2, 2, 5)) 
for(i in 1:5) { 
    A[, , i] <- matrix(rnorm(4), 2, 2) 
} 

मैं उन स्लाइस की औसत लेने के लिए मैट्रिक्स एक भी 2 से 2 प्राप्त करना चाहते हैं: मैं निम्नलिखित की तरह कुछ है। जिस तरह से मैं आना चाहता हूं वह सुंदर है।

मैं अगर मैं एक मैट्रिक्स के स्तंभों में से औसत कहना चाहता था लागू होते हैं, जैसे मैं करूंगा उपयोग करने के लिए सक्षम होने के लिए उम्मीद कर रहा था:

B <- matrix(rnorm(10), 5, 2) 
B.mean <- apply(B, 2, mean) 

लेकिन इस तरह से मैं यह लगता है कि काम करने के लिए प्रतीत नहीं होता 3 डी सरणी के साथ हो सकता है:

A.mean <- apply(A, 3, mean) 

मैं आपके सुझावों की सराहना करता हूं।

उत्तर

28
A.mean <- apply(A, c(1,2), mean) 
+0

बिल्कुल सही! और यह सरणी के लिए मदद फ़ाइल में ठीक था, लेकिन जब तक आपने इसे इंगित नहीं किया, तब तक मैंने इसे तब तक नहीं देखा जब तक कि इसे देखा न जाए। धन्यवाद! – TJB

+8

सामान्य रूप से, 'लागू' का 'मार्जिन' पैरामीटर उन आयामों का वेक्टर होना चाहिए जिन्हें आप संरक्षित करना चाहते हैं, पतन के बजाए। – mbq

+1

इसके बारे में क्या: mean.data.frame (ए)? –