我想创建一个本身使用 awesome 函数的glue::glue
函数。
但是,当我想粘合一个存在于函数和全局环境中的变量时,我发现自己正在处理一些命名空间问题:
x=1
my_glue <- function(x, ...) {
glue::glue(x, ...)
}
my_glue("foobar x={x}") #not the expected output
# foobar x=foobar x={x}
我宁愿保留以x
包一致性命名的变量。
我最终做了这样的事情,到目前为止效果很好,但只是推迟了问题(很多,但仍然):
my_glue2 <- function(x, ...) {
x___=x; rm(x)
glue::glue(x___, ...)
}
my_glue2("foobar x={x}") #problem is gone!
# foobar x=1
my_glue2("foobar x={x___}") #very unlikely but still...
# foobar x=foobar x={x___}
有没有更好/更清洁的方法来做到这一点?