varias swirl superponer studio sistema parámetros línea lineas lección jugar ingresa gráficos graficos graficas graficación funcion ella con comienza comandos r dataframe lapply

swirl - superponer graficas en r



Utilizar lapply para aplicar una función sobre la lista de marcos de datos y guardar los resultados en archivos con diferentes nombres (2)

Tengo una lista de marcos de datos y le he dado a cada elemento de la lista (por ejemplo, cada marco de datos) un nombre:

p.ej

df1 <- data.frame(x = c(1:5), y = c(11:15)) df2 <- data.frame(x = c(1:5), y = c(11:15)) mylist <- list(A = df1, B = df2)

Tengo una función que deseo aplicar a cada marco de datos; En esta función, quiero incluir una línea para escribir los resultados en un archivo (eventualmente quiero hacer cosas más complicadas como guardar tramas de la correlación entre dos variables para cada marco de datos, pero pensé que comenzaría de manera simple)

p.ej

NewVar <- function(mydata, whichVar, i) { mydata$newVar <- mydata[, whichVar] + 1 write.csv(mydata, file = i) }

Quiero usar lapply() para aplicar esta función a cada marco de datos en mi lista

algo como:

hh<-lapply(mylist, NewVar, whichVar = "y")

No puedo encontrar la forma de asignar la "i" dentro del contexto de lapply para que itere sobre los nombres en la lista de marcos de datos, guardando varios archivos con diferentes nombres (en este caso, dos archivos llamados A y B ) que se corresponden con los marcos de datos modificados.


Funcionará con la siguiente lapply solicitud:

lapply(names(mylist), function(x) NewVar(mylist[[x]], "y", x))


Hay muchas opciones Por ejemplo:

lapply(names(mylist), function(x)write.csv(mylist[x], file =paste0(x,''.csv'')))

o usando índices:

lapply(seq_along(mylist), function(i)write.csv(mylist[i], file =paste0(names(mylist)[i],''.csv'')))