2012-07-20 107 views
3

我想寫一個HTTP POST請求,但我需要先將數據轉換爲二進制格式。這可能是一個簡單的問題,但我發現R連接非常混亂,而且我一直無法找到一個以我理解的方式解釋它們的好資源。例如,我想編碼一個整數(8個字節),然後是一個數字(4個字節)。這裏是我試過的代碼:在R中寫入二進制數據

myint <- as.integer(1339700942) 
mydouble <- 1.2 
obj <- file(open='w+b') #I've tried textConnection too, but no good 
w.int <- writeBin(myint, obj, size=8, endian='big') 
w.double <- writeBin(mydouble, obj, size=4, endian='big') 

這讓我打開連接,但所有這寫的是NULL。在這種情況下使用連接和writeBin的正確方法是什麼?

+0

感謝Joshua!我的錯誤與變量名稱。 – 2012-07-20 19:26:50

+1

根據'?writeBin',它會返回'NULL',除非'con'參數是一個原始向量,它不在你的例子中。如果你可以給你更多的背景問題,這將有所幫助。 – 2012-07-20 19:28:15

+0

這個例子非常接近我的實際問題。我想將XDR數據發佈到網站上,格式將是8字節整數和4字節浮點的重複序列。 – 2012-07-20 19:32:48

回答

3

對象'obj'實際上不是必需的。如果writeBin寫入R對象而不是R以外的文件,最後三行可以替換爲:

w.int <- writeBin(myint, raw(0), size=8, endian='big') 
w.double <- writeBin(mydouble, raw(0), size=4, endian='big')