Esto es algo que los analistas de datos hacen todo el tiempo (especialmente cuando trabajan con datos de encuestas que tienen respuestas faltantes). Es común primero imputar un conjunto de matrices de datos compite, ajuste modelos a cada una de estas matrices y luego combine los resultados. Por el momento estoy haciendo cosas a mano y buscando una solución más elegante.Con R, recorra tramas de datos y asigne nombres apropiados a objetos creados en el bucle
imagino que hay 5 *.csv
archivos en el directorio de trabajo, el nombre dat1.csv
, dat2.csv
, ... dat5.csv
. Quiero estimar el mismo modelo lineal usando cada conjunto de datos.
Dada this answer, un primer paso es reunir una lista de los archivos, que hago con el siguiente
csvdat <- list.files(pattern="dat.*csv")
Ahora quiero hacer algo como
for(x in csvdat) {
lm.which(csvdat == "x") <- lm(y ~ x1 + x2, data = x)
}
El "que" La declaración es mi tonta manera de intentar numerar cada modelo por turno, usando la ubicación en la lista csvdat que el ciclo está actualmente disponible. es decir, me gustaría que este bucle para devolver un conjunto de 5 lm objetos con los nombres lm.1
, lm.2
, etc
¿Hay alguna forma sencilla de crear estos objetos y nombrarlos para que pueda indicar fácilmente qué datos establecer que corresponden a?
Gracias por su ayuda!
Solución más elegante que la mía. Mi +1 por venir, pero veo la respuesta de @Henrik, que es lo que el OP estaba buscando. – chl
@ chi Tanto su solución como la de Ramnath servirán mejor al consultante a largo plazo. –