Una publicación aquí un día atrás me ha preguntado cómo asignar valores a múltiples objetos en el entorno global desde dentro de una función. Este es mi intento de usar lapply
(assign
puede ser más seguro que <<-
pero nunca lo he usado y no estoy familiarizado con él).Asignar múltiples objetos a .GlobalEnv desde una función
#fake data set
df <- data.frame(
x.2=rnorm(25),
y.2=rnorm(25),
g=rep(factor(LETTERS[1:5]), 5)
)
#split it into a list of data frames
LIST <- split(df, df$g)
#pre-allot 5 objects in R with class data.frame()
V <- W <- X <- Y <- Z <- data.frame()
#attempt to assign the data frames in the LIST to the objects just created
lapply(seq_along(LIST), function(x) c(V, W, X, Y, Z)[x] <<- LIST[[x]])
dude en acortar cualquier/todas las partes de mi código para hacer este trabajo (o trabajar mejor/más rápido).
Esta pregunta o cualquier respuesta debería venir con un gran "Niños, no hagas esto en casa". renuncia. Como sabrá, las asignaciones globales dentro de las funciones son una receta para el desastre, o "la vida de un volcán" para citar a Richard Burns (http://www.burns-stat.com/pages/Tutor/R_inferno.pdf) – flodel
@flodel No soy programador, ¿puedes explicar brevemente el problema con asignar? –
Así que leí la sección que citó. Eso parece inteligente para el código de consumo público pero no para el código personal. ¿Puedes ver una forma de lograr este afecto sin? –