2012-04-10 61 views
0

我正在嘗試讀取多個二進制(365)文件並進行一些計算,然後讀取到另一個文件夾。我面臨兩個問題:如何在R中編寫二進制文件?

第一:下面的代碼給我一個錯誤:

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=2writeBin(file, to.write, size=2)但是這給了一個錯誤:

Error in writeBin(file, to.write, size = 2) : size 2 is unknown on this machine.    

上正確寫入二進制文件的任何幫助表示讚賞

+0

「警告消息」不是一個錯誤... R只是告訴你它正在關閉一個連接,你似乎沒有再使用它了。 – 2012-04-10 14:28:55

回答

2

基於我可以看到你正在試圖writeBin()向量的doubles迫使各元素的大小爲2.這是不可能的。

您也許能夠as.integer(file)並嘗試將結果向量編寫爲size=2的元素,但您必須嘗試此操作。

+0

是的它做到了。 Merci – hkfidd 2012-04-10 15:54:30

+0

如果這解決了你的問題,你可以選擇正確的答案嗎? – 2012-04-10 16:40:45

+0

謝謝。它是doen – hkfidd 2012-04-12 17:47:47