以编程方式设置环境变量 [英] setting environment variables programmatically
本文介绍了以编程方式设置环境变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Sys.setenv(TODAY =Friday )
但是,如果环境变量名称和值存储在R对象中怎么办?
var.name< - TODAY
var.value< - Friday
我写了:
expr < - 粘贴(Sys.setenv(,var.name,=',var.value,'),sep =)
expr
#[1] .setenv(TODAY ='Friday')
eval(parse(text = expr))
哪些工作:
Sys.getenv(TODAY)
#1]Friday
但我觉得很丑陋。有没有更好的办法?谢谢。
解决方案
您可以使用 do.call
函数与该命名参数:
args = list(var.value)
名称(args)= var.name
do.call(Sys.setenv,args)
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.
解决方案
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)
这篇关于以编程方式设置环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文