0

Rで空間平均を計算する方法を見つけるために長い間探していましたが、何かを見つけることができませんでした.720列と360行のバイナリファイルがあり、気温が浮動小数点数です。そして、最初にエリア全体の空間平均を計算し、(500-600 コルと 200-250 行) のエリアの空間平均を計算してから、エリアを抽出します。

t<- file("C:annual_Prc2000_without999_1.img","rb")
 e=readBin(t, double(), size=4,n=720*360, signed=TRUE)

回答1から:

             mean(e)
                I got 
                NaN

回答2から:私は得ました

              spat_mean = apply(e, c(2,1), mean)
            Error in apply(e, c(2, 1), mean) : dim(X) must have a positive length

説明させてください:仮定します

       m <- matrix(rnorm(10000),4,4)
         > m
            [,1]       [,2]         [,3]       [,4]
   [1,]  0.7930132  2.1973895  0.063493345 -0.5484056
   [2,]  0.5222513  0.4331308 -0.002393336  0.1725495
   [3,]  1.7462222 -1.5701996 -2.276781240  0.5628531
   [4,] -1.2713361 -0.9349057  0.757412225  1.5118180
        > mean(m)
      [1] 0.134757
        now I want this:
          [,1]       [,2]         [,3]       [,4]
   [1,] 0.134757   0.134757     0.134757    0.134757
   [2,]  0.134757   0.134757     0.134757   0.134757
    [3,]  0.134757   0.134757       0.134757   0.134757
    [4,] 0.134757    0.134757     0.134757     0.134757

私はこれを手動で行いましたが、Rを介して行いたいです

4

2 に答える 2

2

Assuming you have a regular spatial grid, you probably want something like this:

set.seed(42)
m <- matrix(rnorm(10000),100,100)

#calculate mean of all values
mean(m)

#calculate mean of region 1:10 * 1:10
mean(m[1:10,1:10])
于 2012-11-04T14:04:09.163 に答える
1

あなたのコメントから他の答えまで、x、yペアごとの平均値を計算したいと思います。これには、 を使用できますapply。x、y、時間の次元を持つ多次元配列があると仮定すると、x、y のペアごとに平均を取得するには、次のようにします。

spat_mean = apply(multi_dim_array, c(1,2), mean)

spat_meanx、y 次元の 2 次元配列になり、空間平均が得られます。

于 2012-11-04T15:39:29.167 に答える