2016-04-23 22 views
0

行列のリストに対してcolMeansを実行する方法を知りたいと思います。R:行列のリストでcolMeansを実行する方法

はR.で

おかげで多くのことをこれを行う方法を提示してください。

はここに私のデータセットは次のようになります:colMeans後

> dataset 
    [,1]  [,2]  
[1,] 22.04031 28.03182 
[2,] 23.94481 28.17275 
[3,] 16.39071 25.44523 
[4,] 22.10198 22.45534 
[5,] 24.95194 27.95778 
[6,] 33.09007 36.74856 

私の望ましい結果は、両方の鞍部に平均を行うことになる[1]と[2]。これら2つの列の平均はそれぞれ23.75330と28.13524になります。

> str(dataset) 
List of 12 
$ : num 22 
$ : num 23.9 
$ : num 16.4 
$ : num 22.1 
$ : num 25 
$ : num 33.1 
$ : num 28 
$ : num 28.2 
$ : num 25.4 
$ : num 22.5 
$ : num 28 
$ : num 36.7 
- attr(*, "dim")= int [1:2] 6 2 

データセットを溶断:

は、ここでは、このデータセットに関するその他の情報です。列の値は、colMeansに必要な値です。

> melt(dataset) 
    Var1 Var2 value  NA 
1  1 1 22.04031 28.03182 
2  2 1 23.94481 28.17275 
3  3 1 16.39071 25.44523 
4  4 1 22.10198 22.45534 
5  5 1 24.95194 27.95778 
6  6 1 33.09007 36.74856 
7  1 2 22.04031 28.03182 
8  2 2 23.94481 28.17275 
9  3 2 16.39071 25.44523 
10 4 2 22.10198 22.45534 
11 5 2 24.95194 27.95778 
12 6 2 33.09007 36.74856 
+0

'sapply(myList、colSums)'は何をしますか? –

+0

と表示されています。「x」は、少なくとも2つの次元の配列でなければなりません。 –

+0

質問に必要な出力を印刷してください。 「彼はカラム値が私がcolMeansに必要なものです」と言っていますが、「少なくとも2つのディメンションの配列」が必要です。これは混乱しています。 – lmo

答えて

3

リストはdim属性を持っているので、あなただけ使用することができます。

mat <- array(unlist(dataset), dim = dim(dataset)) 
colMeans(mat) 

編集:おかげで、@RichardScriven、改善のために。

+1

'dim'の最初の値が' nrow'で、2番目の値が落とされるので 'matrix(unlist(dataset)、dim(dataset))'に短縮することさえできます。 –

+0

知っておきたいデータセットを最初にリストから外す必要があります。 'colMeans(matrix(unlist(dataset)、ncol = 2))') –

+0

@RichardScrivenありがとう!私はまた、2次元以上を説明するために関数を 'array'に変更しました。 – Laterow

関連する問題