同じ次元の 5 つのバイナリ ファイル (ラスター) があります。最初の 4 つのファイルはパラメーター 1 を表し、5 番目のファイルは 10 クラスの土地被覆マップを表します。土地被覆クラスに基づいて 4 つのファイルすべての平均を計算したいと考えています。最終的に、各クラスに対応する 4 つの値を取得します。
すべてのファイルに対してこれを試しました:
dir1<- list.files("C:\filesh", "*.img", full.names = TRUE)
fre <- file("C:\\landover_from Suj1440a.bin","rb")
sdf<- readBin(fre, integer(), size=1, n=1440*720, signed=F)
results<- list()
for (.files in seq_along(dir1)){
list1 <- readBin(dir1[.files], numeric(), size = 4, n = 1440*720, signed = TRUE)
list1=tapply(list1, sdf, mean, na.rm=TRUE)
results[[length(results) + 1L]]<- list1}
エラーなしで動作したようです。: 結果を書き込むには:
for (i in seq_along(results)){
write.table(results[[i]], paste("C:\\Users\\filesh\\data", ".txt", sep=""),append=TRUE)}
次のようなすべての結果を含む 1 つのテキスト ファイルを取得します。
x
1 0.2
2 0.5
3 0.2
x
1 0.1
2 0.5
3 0.6
4-出力を、次のようなすべての結果を含む 1 つのテキスト ファイルにしたいと考えています。
1 2 3 4 5 6 7 ...
x 0.2 0.5 0.2 . . . . ...
x 0.1 0.5 0.6
x . . . . . . . ...
x .
私の検索から、探しているものを取得するには、それらをデータフレームとして記述する必要があることがわかりました。