我正在尝试读取多个二进制(365)文件并进行一些计算然后读取到另一个文件夹。我遇到了两个问题:
首先:下面的代码给出了一个错误:
Warning message: closing unused connection 3 (C:\PHD\Climate Data\Out\Temperature_1.dat
setwd("C:\\PHD\\Climate Data\\Wind\\")
listfile<-dir()
for (i in c(1:365)) {
conne <- file(`listfile[i], "rb")
file<- readBin(conne, integer(), size=2, n=360*720, signed=T)
file<-file-273.15 #
close(conne)
to.write = file(paste("C:\\PHD\\Climate Data\\Out\\Temperature_",i,".dat",sep=""),"wb")
writeBin(file, to.write)
close(to.write)
}
第二:
由于我的文件是16bit,size=2
,我想确保输出数据的大小相同。所以我刚刚将size=2
添加到writeBin(file, to.write, size=2)
,但这会出错:
Error in writeBin(file, to.write, size = 2) : size 2 is unknown on this machine.
赞赏正确编写二进制文件的任何帮助
答案 0 :(得分:2)
根据我所看到的情况,您尝试writeBin()
向量doubles
强制每个元素的大小为2.这是不可能的。
您可能as.integer(file)
并尝试将结果向量编写为size=2
的元素,但您必须尝试此操作。