我想从float32转换为16b,比例因子为10.我应该得到大小为507kb(720 * 360 * 2)而不是131kb的文件。有什么帮助吗?
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)
}
答案 0 :(得分:2)
'file2'中等于-9999的每个元素都不会出现在结果[[。files]]中。看起来'file2'中大约3/4的元素等于这个值。也许你想为这些元素分配一个不同的值,而不是在分配给结果[[...]]时丢弃它们。
要做你想做的事,试试这个:
file2[file2 != -9999] <- file2[file2 != -9999]*10
results[[length(results) + 1L]] <- file2;