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


R glue glue_safe 安全地插入字符串


glue_safe()glue_data_safe()glue()glue_data() 的不同之處在於,安全版本僅使用 get() 從環境中查找符號。它們不執行任何 R 代碼。這使得它們適合與不受信任的輸入一起使用,例如閃亮應用程序中的輸入,其中使用正常函數將允許攻擊者執行任意代碼。

用法

glue_safe(..., .envir = parent.frame())

glue_data_safe(.x, ..., .envir = parent.frame())

參數

...

[expressions]
未命名的參數被視為要格式化的表達式字符串。多個輸入在格式化之前連接在一起。命名參數被視為可用於替換的臨時變量。

.envir

[environmentparent.frame()]
計算每個表達式的環境。表達式從左到右計算。如果.x是一個環境,表達式在該環境中求值並且.envir被忽略。如果NULL通過了,就相當於emptyenv().

.x

[listish]
用於查找值的環境、列表或 DataFrame 。

例子

"1 + 1" <- 5
# glue actually executes the code
glue("{1 + 1}")
#> 2

# glue_safe just looks up the value
glue_safe("{1 + 1}")
#> 5

rm("1 + 1")
源代碼:R/safe.R

相關用法


注:本文由純淨天空篩選整理自Jim Hester等大神的英文原創作品 Safely interpolate strings。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。