首页 > 解决方案 > R:如何将 double 转换为 raw 并返回?

问题描述

有一个as.raw功能和intToBits功能。

所以我可以将 a 转换double为位,但如何将其转换回double.

用例转换double为,raw因此我可以使用 压缩fst::compress_fst,然后使用 将其写入磁盘writeBin,然后将其读回。但是因为我找不到转换raw回的方法double,目前这似乎是不可能的。

要转换integer为原始和返回,是packBits(intToBits(1:10), type = "integer"). 双倍的等价物是什么?

标签: r

解决方案


另一个答案很接近,但无需为此制作文件。

doubleToRaw <- function(d) { writeBin(d, raw()); }
rawToDouble <- function(r) { readBin(r, numeric()); }

例子:

> rr = doubleToRaw(pi)
# [1] 18 2d 44 54 fb 21 09 40
> rawToDouble(rr)
# [1] 3.141593

推荐阅读