0

Riverというファイルがあり、このファイルに値=1の関心領域があるとします。
マスクとして必要なファイルは、次のように読み取ることができます。

sd <- file("C:\\lai_28_06.bin", "rb")
river<- readBin(sd, integer(), size=2,  n=360*720, signed=T)

以下に示すコードは、いくつかのバイナリファイル(366)から領域を抽出し、平均を計算します。ご覧のとおり、(X <-c(450:455); Y <-c(140:145))を使用して地域を選択しました。今、私は同じことをしたいのですが、ファイル「river」からの情報を使用します。たとえば、「river」= 1の場合、対応する値(aの下にリストされているファイルから)を考慮に入れ、それらの値の合計を値の数(単に平均)で除算します。

a<-list.files("C:\\New folder (13)", "*.bin", full.names = TRUE)
X<-c(450:455) ; Y<-c(140:145) 
extract<-vector()
# construct a vector of file names and loop through
for (i in 1:366) {
    conne <- file(k[i], "rb")
    file<- readBin(conne, integer(), size=2,  n=360*720, signed=T)
    file2<-t(t(matrix(data=file,ncol=360,nrow=720)))
    extract[i]<-mean(file2[X,Y])
    close(conne)
    }
write.table(extract,"C:\\yeinteg.txt")
4

1 に答える 1

1

私はこれがあなたが望むものの核心だと思います(ずさんですが効果的です):

rivermask<-matrix(NA,nc=360,nr=720)
rivermask[river==1]<-1
mean(file2*rivermask,na.rm=TRUE)
于 2012-11-08T15:11:26.560 に答える