问题
In R, I can set environment variables "manually", for example:
Sys.setenv(TODAY = "Friday")
But what if the environment variable name and value are stored in R objects?
var.name <- "TODAY"
var.value <- "Friday"
I wrote this:
expr <- paste("Sys.setenv(", var.name, " = '", var.value, "')", sep = "")
expr
# [1] "Sys.setenv(TODAY = 'Friday')"
eval(parse(text = expr))
which does work:
Sys.getenv("TODAY")
# 1] "Friday"
but I find it quite ugly. Is there a better way? Thank you.
回答1:
You can use do.call
to call the function with that named argument:
args = list(var.value)
names(args) = var.name
do.call(Sys.setenv, args)
回答2:
Try this:
.Internal(Sys.setenv(var.name, var.value))
来源:https://stackoverflow.com/questions/12533113/setting-environment-variables-programmatically