character(0)
Ambientes e caminho de busca
Usaremos Batista e Oliveira (2022):
environment
nome <- valor
.GlobalEnv
ou globalenv()
environment()
emptyenv()
baseenv()
> # Criando objetos no ambiente global
> b <- 2; a <- "Ben"; x <- TRUE
> ls() # Verificando os nomes no ambiente global
[1] "a" "b" "x"
> # Criando um objeto ambiente no ambiente global
> amb1 <- new.env()
> # Inserindo nomes nesse no ambiente "amb1"
> amb1$d <- 3; amb1$e <- "FALSE"
> ls() # Verificando nomes no ambiente global
[1] "a" "amb1" "b" "x"
[1] "d" "e"
amb1
Vamos falar apenas de dois: ambiente envolvente e ambiente de execução
> x <- 0 # Criando o objeto x e o imprimindo
> # Criando uma funcao com a superatribuicao
> f1 <- function() {
+ # Obj2
+ x <- 1
+ # Modificando x do ambiente global
+ x <<- 2
+ # Imprimindo o ambiente de execucao
+ env <- environment()
+ # Imprimindo o Obj2
+ res <- list(x = x, "Ambiente de execução" = env, "Ambiente Pai" = parent.env(env))
+ # Retornando a lista
+ return(res)
+ }
[1] ".GlobalEnv" "package:SMR" "package:stats"
[4] "package:graphics" "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods" "Autoloads"
[10] "package:base"
> # Carregando o pacote midrangeMCP
> library(midrangeMCP)
> # Verificando o caminho de busca
> search()
[1] ".GlobalEnv" "package:midrangeMCP" "package:SMR"
[4] "package:stats" "package:graphics" "package:grDevices"
[7] "package:utils" "package:datasets" "package:methods"
[10] "Autoloads" "package:base"
> # Criando um ambiente
> amb2 <- new.env()
> # Verificando seus parentais
> rlang::env_parents(env = amb2, last = emptyenv())
[[1]] $ <env: global>
[[2]] $ <env: package:midrangeMCP>
[[3]] $ <env: package:SMR>
[[4]] $ <env: package:stats>
[[5]] $ <env: package:graphics>
[[6]] $ <env: package:grDevices>
[[7]] $ <env: package:utils>
[[8]] $ <env: package:datasets>
[[9]] $ <env: package:methods>
[[10]] $ <env: Autoloads>
[[11]] $ <env: package:base>
[[12]] $ <env: empty>
attach()
> # objeto quadro de dados
> dados <- data.frame(sd = 1:3, var = (1:3)^2)
> # Caminho de busca
> search()
[1] ".GlobalEnv" "package:midrangeMCP" "package:SMR"
[4] "package:stats" "package:graphics" "package:grDevices"
[7] "package:utils" "package:datasets" "package:methods"
[10] "Autoloads" "package:base"
> # anexando "dados" ao caminho de busca
> attach(dados)
> # Verificando novamente o caminho de busca
> search()
[1] ".GlobalEnv" "dados" "package:midrangeMCP"
[4] "package:SMR" "package:stats" "package:graphics"
[7] "package:grDevices" "package:utils" "package:datasets"
[10] "package:methods" "Autoloads" "package:base"
attach()
Sugestões, perguntas, críticas…