organizaciones - exposicion del entorno global
Devuelve los elementos de la lista como objetos independientes en el entorno global. (3)
Esto también funcionaría:
lapply(seq_along(obj), function(i) assign(names(obj)[i], obj[[i]], envir = .GlobalEnv))
Tengo una lista y me gustaría dividir los elementos de la lista en objetos separados en el entorno global.
Por ejemplo, me gustaría la lista:
obj <- list(a=1:5, b=2:10, c=-5:5)
para ser tres objetos separados a
, b
, y c
.
Traté de lograr esto con:
lapply(obj, FUN = function(x) names(x)[1] <<- x[1])
Pero falló, con Error in names(x)[1] <<- x[1] : object ''x'' not found
.
¿Cómo podría lograr mi objetivo?
Hay una función especial para mapear la lista al entorno:
> obj <- list(a=1:5, b=2:10, c=-5:5)
> ls()
[1] "obj"
> list2env(obj,globalenv())
<environment: R_GlobalEnv>
> ls()
[1] "a" "b" "c" "obj"
PS Es mi comentario proporcionado como respuesta.
No lo recomiendo pero podrías usar attach
> obj <- list(a=1:5, b=2:10, c=-5:5)
> attach(obj)
> a
[1] 1 2 3 4 5
> b
[1] 2 3 4 5 6 7 8 9 10
> c
[1] -5 -4 -3 -2 -1 0 1 2 3 4 5