以编程方式设置环境变量 [英] setting environment variables programmatically

查看:144
本文介绍了以编程方式设置环境变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆