2017-05-27 8 views
-1

私は2000の共分散行列のサイズが27 * 27であるため、2000のすべての行列にわたって平均共分散行列を求めたいと思います。私が望む結果は、位置[1,1]が与えられた27の行列の位置[1,1]の平均であるサイズ27x27の1つの行列です。 他の投稿から、配列を作成してapply関数を使用する必要があることがわかりましたが、動作しません。複数の行列の平均を計算する方法

私のコード:

a<-array(ml.1[c(1:2000)]) 
apply(a,c(1,2),mean) 

私は、このエラーメッセージが出ます: エラー(D2 == 0L){場合に:誰でも助けることができる場合、私は感謝TRUE/FALSEが

を必要として欠損値を私はこの問題を解決する。

+0

[尋ねる]確認してくださいと[MCVE] –

答えて

1

まず、@ eipi10はあなたの質問が再現できないのです。しかし、ここで重要なのは、あなたの配列を設定する方法です。

#Make some fake data 10 matrices 10x10 
m <- lapply(1:10, function(x) matrix(rnorm(100), nrow = 10)) 
#bind the matrices together 
a <- do.call(cbind, m) 
#recast the matrix into three dimensions 
dim(a) <- c(10,10,10) 
#now apply should work 
apply(a, c(1,2), mean) 
+3

むしろリストを再形成するよりも、あなただけのその要素を追加することができます: ''削減(\ '+ \'、M)/長さ(m)を – alistaire

関連する問題