"attaching" 环境变量到现有环境
"attaching" environment variables to an existing environment
我正在做一个项目,它有两种可能的情况。在第一个场景中,我需要环境中的变量 a
、b
和 c
。在第二种情况下,我需要变量 a
、b
、d
和 f
.
我试图找出一种以某种方式“附加”这些环境的方法,这样我首先使用在两种情况下都很常见的变量创建一个 basis_environment
- a
和 b
basis_environment <- env(a = 4, b = 5)
并且根据场景(ex.scenario1)我创建了另一个变量,如:
final_environment <- env(basis_environment,
c = 7)
然而,这导致 final_ennvironment 只有一个元素,即 c
.
如何创建一个包含所有三个变量的环境,以便两个在较早阶段创建,最后一个在稍后创建,但最终环境包含所有三个变量?
您可以在 base R 中使用类似以下内容实现此目的:
basis_environment <- list2env(list(a = 4, b = 5))
# The following ensures a copy of the environment is made, not just a reference
final_environment <- list2env(as.list(basis_environment))
# Add elements directly to final_environment using the $ operator
final_environment$c <- 7
而且我们可以看到这两个环境是不同的:
ls(envir = basis_environment)
#> [1] "a" "b"
ls(envir = final_environment)
#> [1] "a" "b" "c"
由 reprex package (v0.3.0)
于 2020-11-22 创建
我正在做一个项目,它有两种可能的情况。在第一个场景中,我需要环境中的变量 a
、b
和 c
。在第二种情况下,我需要变量 a
、b
、d
和 f
.
我试图找出一种以某种方式“附加”这些环境的方法,这样我首先使用在两种情况下都很常见的变量创建一个 basis_environment
- a
和 b
basis_environment <- env(a = 4, b = 5)
并且根据场景(ex.scenario1)我创建了另一个变量,如:
final_environment <- env(basis_environment,
c = 7)
然而,这导致 final_ennvironment 只有一个元素,即 c
.
如何创建一个包含所有三个变量的环境,以便两个在较早阶段创建,最后一个在稍后创建,但最终环境包含所有三个变量?
您可以在 base R 中使用类似以下内容实现此目的:
basis_environment <- list2env(list(a = 4, b = 5))
# The following ensures a copy of the environment is made, not just a reference
final_environment <- list2env(as.list(basis_environment))
# Add elements directly to final_environment using the $ operator
final_environment$c <- 7
而且我们可以看到这两个环境是不同的:
ls(envir = basis_environment)
#> [1] "a" "b"
ls(envir = final_environment)
#> [1] "a" "b" "c"
由 reprex package (v0.3.0)
于 2020-11-22 创建