2016-05-02 11 views
0

次元3に沿って3D配列を合計する(それによって行列を生成する)標準的な方法は何ですか?3次元に沿って配列を合計する方法

私は私が(誤ってまたは正しく)apply(A,c(1,2),sum)ことができますが、知っている私はapplyを使用してforループを使用してよりも良いではないことをどこかからの印象を受けました。

おそらくapermアレイcolSumそれから、それはapermそれでも、それは非常に可読ではないでしょう。

良い方法がありますか?

答えて

5

rowSumsを使用してください。これは、「合計が「行」または「列」とみなされる次元を指定するdimsパラメータを提供します。行*の場合、合計または平均は次元dims + 1以上です。

a <- array(1:16, c(2, 2, 2)) 
#, , 1 
# 
#  [,1] [,2] 
#[1,] 1 3 
#[2,] 2 4 
# 
#, , 2 
# 
#  [,1] [,2] 
#[1,] 5 7 
#[2,] 6 8 

rowSums(a, dims = 2) 
#  [,1] [,2] 
#[1,] 6 10 
#[2,] 8 12 
関連する問題