serialize
位於 base
包(package)。 說明
用於序列化連接的簡單低級接口。
用法
serialize(object, connection, ascii, xdr = TRUE,
version = NULL, refhook = NULL)
unserialize(connection, refhook = NULL)
參數
object |
R要序列化的對象。 |
connection |
開放的 connection 或(對於 |
ascii |
一個合乎邏輯的。如果是 |
xdr |
邏輯:如果使用二進製表示形式,是否應該使用大尾數表示形式(XDR)? |
version |
要使用的工作區格式版本。 |
refhook |
用於處理引用對象的鉤子函數。 |
細節
函數serialize
將object
序列化到指定的連接。如果 connection
是 NULL
則 object
會序列化為原始向量,該向量作為 serialize
的結果返回。
引用對象的共享保留在對象內,但不會跨對 serialize
的單獨調用進行保留。
unserialize
從 connection
或原始向量讀取對象(由 serialize
編寫)。
refhook
函數可用於自定義非係統引用對象的處理(所有外部指針和弱引用,以及除命名空間和包環境以及 .GlobalEnv
之外的所有環境)。 serialize
的鉤子函數應該返回它想要處理的引用的字符向量;否則它應該返回 NULL
。 unserialize
的鉤子將使用提供給 serialize
的字符向量進行調用,並且應該返回一個適當的對象。
對於文本模式連接,ascii
的默認值設置為 TRUE
:隻能將 ASCII 表示形式寫入文本模式連接,嘗試使用 ascii = FALSE
將引發錯誤。
該格式由一行後跟數據組成:第一行包含一個字符:X
(用於二進製序列化)和 A
(用於 ASCII 序列化),後跟一個新行。 (使用的格式與 readRDS
使用的格式相同。)
由於當前使用的幾乎所有係統都是小端字節序,因此當將數據從一台小端字節序機器傳輸到另一台小端字節序機器(或在同一台機器上的進程之間)時,可以使用xdr =
FALSE
來避免兩端出現byte-shuffling。根據係統的不同,這可以將序列化和反序列化速度加快 3 倍。
值
對於 serialize
、 NULL
,除非 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
用於將對象序列化到文件或連接的更方便的接口。
save
和 load
用於序列化和恢複一個或多個命名對象。
有關所用格式的詳細信息,請參閱“R Internals”手冊。
相關用法
- R seq.Date 生成規則的日期序列
- R search 給出 R 對象的搜索路徑
- R sequence 創建序列向量
- R seek 重新定位連接的函數
- R setTimeLimit 設置 CPU 和/或運行時間限製
- R seq 序列生成
- R seq.POSIXt 生成規則的時間序列
- R sets 設置操作
- R strsplit 分割字符向量的元素
- R solve 求解方程組
- R scan 讀取數據值
- R sprintf 使用 C 風格字符串格式化命令
- R stop 停止函數執行
- R sign 標誌函數
- R svd 矩陣的奇異值分解
- R strtoi 將字符串轉換為整數
- R source 從文件、連接或表達式中讀取 R 代碼
- R sQuote 引用文字
- R switch 選擇替代方案列表之一
- R substitute 替換和引用表達式
- R strrep 重複字符向量的元素
- R split 分組並重新集合
- R slice.index 數組中的切片索引
- R sort 對向量進行排序或排序
- R standardGeneric 形式化方法係統 – 調度 S4 方法
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Simple Serialization Interface。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。