當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R dput 將對象寫入文件或重新創建它


R語言 dput 位於 base 包(package)。

說明

寫入 ASCII 文本表示形式R對象到文件,R控製台,或連接,或使用一個來重新創建對象。

用法

dput(x, file = "",
     control = c("keepNA", "keepInteger", "niceNames", "showAttributes"))

dget(file, keep.source = FALSE)

參數

x

一個東西。

file

命名文件的字符串或 connection""表示輸出到控製台。

control

解析選項的字符向量(或 NULL )。 control = "all" 很徹底,請參閱.deparseOpts

keep.source

邏輯:如果可能的話,在解析函數時是否應該保留源格式?

細節

dput 打開 file 並將對象 x 解析到該文件中。未寫入對象名稱(與 dump 不同)。如果 x 是一個函數,則關聯的環境將被刪除。因此,範圍信息可能會丟失。

解析一個對象是很困難的,而且並不總是可能的。使用默認的 controldput() 嘗試以可讀的方式進行解析,但對於更複雜或不尋常的對象(請參閱 dump ),不太可能被解析為與原始對象相同。使用control = "all"進行最完整的解析;使用 control = NULL 進行最簡單的解析,甚至不包括屬性。

如果寫入文件的字符少於預期,dput 將發出警告,這可能表明文件係統已滿或損壞。

要顯示保存的源而不是解析內部表示,包括"useSource"control.R目前僅保存函數定義的源代碼。如果您不關心源表示(例如,對於數據對象),則對於速度設置options(keep.source = FALSE) 調用時source.

對於 dput ,第一個參數不可見。

對於 dget ,創建的對象。

注意

這是不是之間傳輸對象的好方法R會議。dump比較好,但是函數savesaveRDS設計用於運輸R數據,並將與R對象dput不能正確處理並且速度更快。

為了避免源屬性與實際函數定義不同步的風險,函數的源屬性永遠不會被寫為屬性。

例子

fil <- tempfile()
## Write an ASCII version of the 'base' function mean() to our temp file, ..
dput(base::mean, fil)
## ... read it back into 'bar' and confirm it is the same
bar <- dget(fil)
stopifnot(all.equal(bar, base::mean, check.environment = FALSE))

## Create a function with comments
baz <- function(x) {
  # Subtract from one
  1-x
}
## and display it
dput(baz)
## and now display the saved source
dput(baz, control = "useSource")

## Numeric values:
xx <- pi^(1:3)
dput(xx)
dput(xx, control = "digits17")
dput(xx, control = "hexNumeric")
dput(xx, fil); dget(fil) - xx # slight rounding on all platforms
dput(xx, fil, control = "digits17")
dget(fil) - xx # slight rounding on some platforms
dput(xx, fil, control = "hexNumeric"); dget(fil) - xx
unlink(fil)

xn <- setNames(xx, paste0("pi^",1:3))
dput(xn) # nicer, now "niceNames" being part of default 'control'
dput(xn, control = "S_compat") # no names
## explicitly asking for output as in R < 3.5.0:
dput(xn, control = c("keepNA", "keepInteger", "showAttributes"))

參考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

deparse.deparseOptsdumpwrite

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Write an Object to a File or Recreate it。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。