在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
的正确方法是什么?
答
对象'obj'实际上不是必需的。如果writeBin写入R对象而不是R以外的文件,最后三行可以替换为:
w.int <- writeBin(myint, raw(0), size=8, endian='big')
w.double <- writeBin(mydouble, raw(0), size=4, endian='big')
感谢Joshua!我的错误与变量名称。 – 2012-07-20 19:26:50
根据'?writeBin',它会返回'NULL',除非'con'参数是一个原始向量,它不在你的例子中。如果你可以给你更多的背景问题,这将有所帮助。 – 2012-07-20 19:28:15
这个例子非常接近我的实际问题。我想将XDR数据发布到网站上,格式将是8字节整数和4字节浮点的重复序列。 – 2012-07-20 19:32:48