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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。