Я хочу создать функцию, которая сама использует удивительную функцию 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___}
Есть ли лучший / более чистый способ сделать это?