17

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"

しかし、私はそれがかなり醜いと思います。より良い方法はありますか?ありがとうございました。

4

3 に答える 3

19

do.callその名前付き引数で関数を呼び出すために使用できます。

args = list(var.value)
names(args) = var.name
do.call(Sys.setenv, args)
于 2012-09-21T15:03:50.683 に答える
6

これを試して:

.Internal(Sys.setenv(var.name, var.value))
于 2012-09-21T15:22:14.413 に答える