R:将环境名称设置为new.env()的参数

Tho*_*hew 4 r environment-variables

有没有办法在调用new.env()时初始化三个名称"indian","pizza"和"ramen"作为参数?

eats <- new.env(
    indian = "8elements",
    pizza = "blue line",
    ramen = "orenchi")
Run Code Online (Sandbox Code Playgroud)

这将是一个替代:

eats <- new.env()
eats$indian = "8elements"
eats$pizza = "blue line"
eats$ramen = "orenchi"
Run Code Online (Sandbox Code Playgroud)

G. *_*eck 6

以下是一些替代方案:

1)创建一个列表并将其转换为环境

eats <- list2env(list(
    indian = "8elements",
    pizza = "blue line",
    ramen = "orenchi"))
Run Code Online (Sandbox Code Playgroud)

2)另一种可能性是这样使用local:

eats <- local({ 
  indian = "8elements"
  pizza = "blue line"
  ramen = "orenchi"
  environment()
})
Run Code Online (Sandbox Code Playgroud)

3) proto包创建原型对象,实际上是环境:

library(proto)
eats <- proto(
  indian = "8elements",
  pizza = "blue line",
  ramen = "orenchi")
Run Code Online (Sandbox Code Playgroud)