Установка программных переменных среды

В 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"

но я нахожу это довольно уродливым. Есть ли способ лучше? Спасибо.

Ответ 1

Вы можете использовать do.call для вызова функции с указанным аргументом:

args = list(var.value)
names(args) = var.name
do.call(Sys.setenv, args)

Ответ 2

Попробуйте следующее:

.Internal(Sys.setenv(var.name, var.value))