setting environment variables programmatically

好久不见. 提交于 2020-01-14 07:05:11

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!