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


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