如何在R中写二进制文件?

时间:2012-04-10 14:24:53

标签: r binary

我正在尝试读取多个二进制(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.            

赞赏正确编写二进制文件的任何帮助

1 个答案:

答案 0 :(得分:2)

根据我所看到的情况,您尝试writeBin()向量doubles强制每个元素的大小为2.这是不可能的。

您可能as.integer(file)并尝试将结果向量编写为size=2的元素,但您必须尝试此操作。