次のコードは、1 つの領域の値を抽出し、それをテキスト ファイルに書き込みます (ディレクトリには 365 個のバイナリ ファイルがあります)。私が直面している問題は、すべてのファイルが 360 行 720 列のサイズのバイナリであることです。この行でそれを指定しました:
file2 <- matrix(data=file,ncol=720,nrow=360)
しかし、私はエラーが発生しました:
mean(file2[X, Y], na.rm = TRUE) のエラー: 添え字が範囲外です。
そして、上記の行を次のように書き直しました。
file2 <- matrix(data=file,ncol=360,nrow=720)
ncol=360 と nrows =720 を入れましたが、これは正しくありません。しかし、それはうまくいき、エラーは発生しませんでした。しかし、結果は正しくありませんでした。
X <- c(364:369) ; Y <- c(82:92) ##### for sellected region
extract <- vector()
dir1 <- list.files("C:\\Users\\Climate_Rad_f_GAMMA_%d.img", full.names = TRUE)
listfile<-dir1()
for (i in c(1:365))
{
conne <- file(listfile[i], "rb")
file <- readBin(conne, double(), size=4, n=720*360, signed=T)
file2 <- matrix(data=file,ncol=720,nrow=360)
extract[i] <- mean(file2[X,Y],na.rm=TRUE)
close(conne)
write.table(extract,"C:\\Users\\sam.txt")
}