我得到131 kb而不是507 kb

时间:2012-05-28 19:04:31

标签: r

我想从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)
} 

1 个答案:

答案 0 :(得分:2)

'file2'中等于-9999的每个元素都不会出现在结果[[。files]]中。看起来'file2'中大约3/4的元素等于这个值。也许你想为这些元素分配一个不同的值,而不是在分配给结果[[...]]时丢弃它们。

要做你想做的事,试试这个:

file2[file2 != -9999] <- file2[file2 != -9999]*10
results[[length(results) + 1L]] <- file2;