3

申し訳ありませんが、3 次元配列のすべての 0 を、それらが含まれる列の平均値で置き換える方法が見つかりません。

ありがとう。たとえば、私がこの配列 j を持っているとしましょう

j
, , 1

      [,1] [,2]
[1,]    0    6
[2,]    1    5
[3,]    2    2

, , 2

      [,1] [,2]
[1,]   11    0
[2,]   14   12
[3,]    0   14

, , 3

     [,1] [,2]
[1,]   19   22
[2,]   20   23
[3,]   21   24

をお願いします。

j
, , 1

      [,1] [,2]
[1,]    1    6
[2,]    1    5
[3,]    2    2

, , 2

      [,1] [,2]
[1,]   11    26/3
[2,]   14   12
[3,]   25/3   14

, , 3

     [,1] [,2]
[1,]   19   22
[2,]   20   23
[3,]   21   24
4

1 に答える 1

3

これに使えますapply

次のデータから始めます。

arr <- array(0:5,dim=c(4,3,2))

, , 1

     [,1] [,2] [,3]
[1,]    0    4    2
[2,]    1    5    3
[3,]    2    0    4
[4,]    3    1    5

, , 2

     [,1] [,2] [,3]
[1,]    0    4    2
[2,]    1    5    3
[3,]    2    0    4
[4,]    3    1    5

できるよ :

apply(arr, c(2,3),function(v) { v[v==0] <- mean(v); v})

与える:

, , 1

     [,1] [,2] [,3]
[1,]  1.5  4.0    2
[2,]  1.0  5.0    3
[3,]  2.0  2.5    4
[4,]  3.0  1.0    5

, , 2

     [,1] [,2] [,3]
[1,]  1.5  4.0    2
[2,]  1.0  5.0    3
[3,]  2.0  2.5    4
[4,]  3.0  1.0    5
于 2013-03-21T14:34:59.353 に答える