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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。