Ответ 1
Вы можете использовать do.call
для вызова функции с указанным аргументом:
args = list(var.value)
names(args) = var.name
do.call(Sys.setenv, args)
В R я могу установить переменные среды "вручную", например:
Sys.setenv(TODAY = "Friday")
Но что, если имя и значение переменной среды хранятся в объектах R?
var.name <- "TODAY"
var.value <- "Friday"
Я написал это:
expr <- paste("Sys.setenv(", var.name, " = '", var.value, "')", sep = "")
expr
# [1] "Sys.setenv(TODAY = 'Friday')"
eval(parse(text = expr))
который работает:
Sys.getenv("TODAY")
# 1] "Friday"
но я нахожу это довольно уродливым. Есть ли способ лучше? Спасибо.
Вы можете использовать do.call
для вызова функции с указанным аргументом:
args = list(var.value)
names(args) = var.name
do.call(Sys.setenv, args)
Попробуйте следующее:
.Internal(Sys.setenv(var.name, var.value))