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 回答