Skip to content

[R-es] help (Crear bucle para generar un dataframe a partir de datos .mdb)

3 messages · Matias Parra, Freddy López, Javier Marcuzzi

#
Hola,

Tengo un conjunto de bases de datos de una encuesta industrial para
diferentes años (1995-2014). Las bases de datos están en formato .mdb. A su
vez, cada base de datos tiene 3 tablas con una variable "ID" común (la
"llave") para vincular las tablas.

Quiero realizar análisis estadísticos para analizar la evolución de ciertas
variables.

Quiero armar un dataframe que contenga todas las bases de datos (1995 a
2014) y todas las tablas (tabla 1 a tabla 3).

He podido generar un dataframe que me une las 3 tablas para un año (por ej.
2014) del siguiente modo.

library(RODBC)
setwd("C:/Users/M/Documents/R data/")
base<-odbcConnectAccess("2014")
datos1<-sqlQuery(base ,"SELECT * FROM TABLA1_2014")
datos2<-sqlQuery(base ,"SELECT * FROM TABLA2_2014")
datos3<-sqlQuery(base , "SELECT * FROM TABLA3_2014")
base1<-Reduce(function(...) merge (...,by="ID", all=T),
list(datos1,datos2,datos3))


Sin embargo, no he podido realizar un bucle para hacer este mismo proceso
para el conjunto de datos.

quiero hacer una función for para automatizar el proceso.

agradecería una ayuda al respecto.


<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Libre
de virus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
#
¡Hola!

El jue, 15-02-2018 a las 12:43 -0300, Matias Parra escribió:
Utilizando la función paste() y algún bucle por aquí y por allá podrías
reutilizar tu mismo código. 

Por ejemplo:

sqlQuery(base, paste(paste("select * from tabla", s, sep=''), "_", año,
sep=''))
variando s de 1 a 3 y año de 1995 a 2014, haría el trabajo de
seleccionar lo que necesitas para esas tablas y períodos. Luego
restaría que la información la acumules o guardes en una lista o donde 
sea más conveniente.

Ojalá sea de ayuda.

¡Salud!
#
Estimado Matías Parra

Puedes utilizar paste como opina Freddy, para ciertas cosas yo supe
realizarlo, pero R demora mucho ejecutando, lo lleva a la memoria, luego
otra vez en caso de ..., y la verdad es que se optimiza llevando los datos
a una base de datos, luego importar esta enterita a R.

Una ventaja es por ejemplo si en R encuentra cierto valor que le llama la
atención, es mucho más práctico buscarlo en la base de datos unificada,
aunque se puede realizar todo en R.

Javier Rubén Marcuzzi

El 15 de febrero de 2018, 13:10, Freddy Omar López Quintero <
freddy.vate01 en gmail.com> escribió: