在R中写入二进制数据

问题描述:

我想写一个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

对象'obj'实际上不是必需的。如果writeBin写入R对象而不是R以外的文件,最后三行可以替换为:

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