あれば環境変数からとる、なければGlobal環境からとる

掲題の件がやりたいので、こんな関数をかいた。

get_from_env_or_global_env <- function(x){
  if(Sys.getenv(x) != ""){
    Sys.getenv(x)
  } else if(exists(x)){
    eval(parse(text = x), envir=.GlobalEnv)
  }
}
#環境変数からとる
> get_from_env_or_global_env("OS")
[1] "Windows_NT"
#Global環境からとる
> a <- 111
> get_from_env_or_global_env("a")
[1] 111

この手のUtilityをPackageにまとめたい気もする。