-2

倍率 10 で float32 から 16b に変換したいだけです。131kb ではなく 507kb(720*360*2) のサイズのファイルを取得することになっています。何か助けはありますか?

dir1 <- list.files("C:\\New folder (13)", "*.img", full.names = TRUE)
results <- list()
for (.files in seq_along(dir1)){
   file2 <- readBin(dir1[.files], double(), size = 4, n = 360*720, signed = TRUE)
   results[[length(results) + 1L]] <- file2[file2 != -9999]*10
   fileName <- sprintf("C:\\SWdown_200001_%d.bin", .files)
   writeBin(as.integer(results[[.files]]), fileName, size = 2)
} 
4

1 に答える 1

2

-9999 に等しい「file2」の各要素は、results[[.files]] には存在しません。「file2」の要素の約 3/4 がこの値に等しいように見えます。おそらく、results[[...]] に割り当てるときにこれらの要素をドロップするのではなく、これらの要素に別の値を割り当てたいと思うでしょう。

やりたいことをするには、これを試してください:

file2[file2 != -9999] <- file2[file2 != -9999]*10
results[[length(results) + 1L]] <- file2;
于 2012-05-28T19:20:19.360 に答える