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


R deparse 表达式解析


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

说明

将未计算的表达式转换为字符串。

用法

deparse(expr, width.cutoff = 60L,
        backtick = mode(expr) %in% c("call", "expression", "(", "function"),
        control = c("keepNA", "keepInteger", "niceNames", "showAttributes"),
        nlines = -1L)

deparse1(expr, collapse = " ", width.cutoff = 500L, ...)

参数

expr

任何R表达。

width.cutoff

中的整数确定尝试 line-breaking 的截止值(以字节为单位)。

backtick

逻辑指示如果符号名称不遵循标准语法,是否应将其括在反引号中。

control

解析选项的字符向量(或 NULL )。 control = "all" 很彻底,请参阅.deparseOpts

nlines

整数:要生成的最大行数。负值表示没有限制。

collapse

一个字符串,传递给 paste()

...

进一步的参数传递给 deparse()

细节

这些函数将未计算的表达式(其中 ‘expression’ 的含义比 modeexpression 中使用的类型 ( typeof ) "expression" 的向量的严格概念更广泛)转换为字符串(一种与 parse 相反)。

其典型用途是为数据集和绘图创建信息标签。该示例展示了此函数的简单用法。它使用函数 deparsesubstitute 为绘图创建标签,这些标签是函数 myplot 的实际参数的字符串版本。

backtick 选项的默认设置是不引用单个符号,而仅引用复合表达式。这是避免破坏现有代码的折衷方案。

width.cutoff 是行长度的下限:继续解析行,直到至少输出 width.cutoff 字节,例如arg = value 表达式不会跨行拆分。

deparse1()是一个简单的实用程序添加R4.0.0 确保字符串结果(character长度为一的向量,通常用于名称构造,如deparse1(substitute(.)).

注意

为了避免源属性与实际函数定义不同步的风险,函数的源属性永远不会被解析为属性。

解析内部结构可能不准确:例如recordPlot记录的图形显示列表不打算被解析,并且.Internal调用将显示为原始调用。

例子

require(stats); require(graphics)

deparse(args(lm))
deparse(args(lm), width.cutoff = 500)

myplot <- function(x, y) {
    plot(x, y, xlab = deparse1(substitute(x)),
               ylab = deparse1(substitute(y)))
}

e <- quote(`foo bar`)
deparse(e)
deparse(e, backtick = TRUE)
e <- quote(`foo bar`+1)
deparse(e)
deparse(e, control = "all") # wraps it w/ quote( . )

参考

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

也可以看看

.deparseOpts 用于可用的 control 设置; dput()dump() 用于使用相同内部解析函数的相关函数。

substituteparseexpression

Quotes 用于引用约定,包括反引号。

相关用法


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