当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R serialize 简单的序列化接口


R语言 serialize 位于 base 包(package)。

说明

用于序列化连接的简单低级接口。

用法

serialize(object, connection, ascii, xdr = TRUE,
          version = NULL, refhook = NULL)

unserialize(connection, refhook = NULL)

参数

object

R要序列化的对象。

connection

开放的 connection 或(对于 serialize )NULL 或(对于 unserialize )原始向量(请参阅“详细信息”)。

ascii

一个合乎逻辑的。如果是 TRUENA ,则写入 ASCII 表示形式;否则(默认)为二进制。另请参阅 save 帮助中的注释。

xdr

逻辑:如果使用二进制表示形式,是否应该使用大尾数表示形式(XDR)?

version

要使用的工作区格式版本。NULL指定当前默认版本 (3)。唯一支持的其他值是 2,默认值来自R1.4.0 至R3.5.0。

refhook

用于处理引用对象的钩子函数。

细节

函数serializeobject 序列化到指定的连接。如果 connectionNULLobject 会序列化为原始向量,该向量作为 serialize 的结果返回。

引用对象的共享保留在对象内,但不会跨对 serialize 的单独调用进行保留。

unserializeconnection 或原始向量读取对象(由 serialize 编写)。

refhook 函数可用于自定义非系统引用对象的处理(所有外部指针和弱引用,以及除命名空间和包环境以及 .GlobalEnv 之外的所有环境)。 serialize 的钩子函数应该返回它想要处理的引用的字符向量;否则它应该返回 NULLunserialize 的钩子将使用提供给 serialize 的字符向量进行调用,并且应该返回一个适当的对象。

对于文本模式连接,ascii 的默认值设置为 TRUE :只能将 ASCII 表示形式写入文本模式连接,尝试使用 ascii = FALSE 将引发错误。

该格式由一行后跟数据组成:第一行包含一个字符:X(用于二进制序列化)和 A(用于 ASCII 序列化),后跟一个新行。 (使用的格式与 readRDS 使用的格式相同。)

由于当前使用的几乎所有系统都是小端字节序,因此当将数据从一台小端字节序机器传输到另一台小端字节序机器(或在同一台机器上的进程之间)时,可以使用xdr = FALSE来避免两端出现byte-shuffling。根据系统的不同,这可以将序列化和反序列化速度加快 3 倍。

对于 serializeNULL ,除非 connection = NULL ,当结果以原始向量返回时。

为了unserialize一个R对象。

警告

这些函数提供了稳定的接口R2.4.0(当序列化对象的存储从字符更改为原始向量时)。但是,序列化格式可能会在未来版本中发生变化R,因此该接口不宜用于长期存储R对象。

在 32 位平台上,原始向量仅限于 字节,但是R对象可以超过此值,并且它们的序列化通常会大于对象。

例子

x <- serialize(list(1,2,3), NULL)
unserialize(x)

## see also the examples for saveRDS

也可以看看

saveRDS 用于将对象序列化到文件或连接的更方便的接口。

saveload 用于序列化和恢复一个或多个命名对象。

有关所用格式的详细信息,请参阅“R Internals”手册。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Simple Serialization Interface。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。