0

地球のサイズが (360 720 ) のバイナリ ファイルがあります。そのファイルから領域を読み取って抽出するために、以下のコードを記述しました。取得したファイル全体の概要を使用すると。

summary(a, na.rm=FALSE)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
0.00    1.00    3.00    4.15    7.00   20.00  200083 .

しかし、抽出した領域(b)のサマリを使用すると、多くの V1,V2 が得られました。これは正しくありません。V1、V2 の数は多くありません。

コードは次のとおりです。

X <- c(200:300)
Y <- c(150:190)
conne <- file("C:\\initial-WTD.bin", "rb")
a=readBin(conne, numeric(), size=4,  n=360*720, signed=TRUE)
a[a == -9999] <- NA
y <- matrix(data=a,ncol=360,nrow=720)
image(t(t(y[X,Y])),ylim=c(1,0))
b = y[X,Y]
summary(b,na.rm=FALSE)

   V1            V2            V3            V4            V5           V6            V7       
 Min.   : NA   Min.   : NA   Min.   : NA   Min.   : NA   Min.   : 8   Min.   : NA   Min.   :   
 1st Qu.: NA   1st Qu.: NA   1st Qu.: NA   1st Qu.: NA   1st Qu.:11   1st Qu.: NA   1st Qu.:  
 Median : NA   Median : NA   Median : NA   Median : NA   Median :14   Median : NA   Median  
 Mean   :NaN   Mean   :NaN   Mean   :NaN   Mean   :NaN   Mean   :14   Mean   :NaN   Mean     
 3rd Qu.: NA   3rd Qu.: NA   3rd Qu.: NA   3rd Qu.: NA   3rd Qu.:17   3rd Qu.: NA   3rd  
  Max.   : NA   Max.   : NA   Max.   : NA   Max.   : NA   Max.   :20   Max.   : NA   Max.     
 NA's   :101   NA's   :101   NA's   :101   NA's   :101   NA's   :99   NA's   :101   NA's   :
4

1 に答える 1

0

問題は、マトリックスのインデックス作成ではなく、アクセスする前の場所にあります。

a <- matrix(1:100, 10, 10)
summary( a[1:3,1:3] )
       V1            V2             V3      
 Min.   :1.0   Min.   :11.0   Min.   :21.0  
 1st Qu.:1.5   1st Qu.:11.5   1st Qu.:21.5  
 Median :2.0   Median :12.0   Median :22.0  
 Mean   :2.0   Mean   :12.0   Mean   :22.0  
 3rd Qu.:2.5   3rd Qu.:12.5   3rd Qu.:22.5  
 Max.   :3.0   Max.   :13.0   Max.   :23.0  

いくつかの非 NA 値 (明らかに 2 つだけ) をヒットすることができましたが、なぜそのようなまばらなデータでこれを行うのでしょうか? これを 100 列 (1000 列中) まで拡大しても、期待どおりの結果が得られました。

于 2012-06-13T16:15:34.900 に答える