Hola Juan. Yo creo que debieras crear una función con tu procedimiento. Por otro lado crear un listado con los nombres de los ficheros (puedes hacerlo manualmente o con un ls o dir a la carpeta correspondiente). Después sólo tienes que pasarle a tu función como argumento cada uno de las posiciones de ese listado (recorriéndolo de inicio a fin). Un Saludo, Miguel. -----Mensaje original----- De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Juan Antonio Gil Pascual Enviado el: miércoles, 16 de julio de 2014 12:26 Para: r-help-es en r-project.org Asunto: [R-es] lista de ficheros Estimados compañeros tengo que realizar un procedimiento a un conjunto de ficheros con unas mismas características. Todos están colocados en un subdirectorio. Como salida del procedimiento tengo un data.frame que puedo salvar en un fichero y un gráfico que salvaré en un pdf. En total son 144 ficheros. ¿Cómo podría abordar el problema para no tener que crear los 144 procedimientos?. Muchas gracias y un cordial saludo, Juan -- Juan Antonio Gil Pascual Profesor de Metodología de la Investigación Cuantitativa correo: jgil en edu.uned.es web: www.uned.es/personal/jgil Dpto. MIDE Facultad de Educación c/Juan del Rosal, 14 desp. 2.72 28040 Madrid Tel'f. 91 3987279 Fax. 91 3987288 _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es ________________________________ Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. See more languages: http://www.sergas.es/aviso_confidencialidad.htm
Puedes crear un bucle sobre el vector carácter que te devuelva la función dir() sobre el directorio en cuestión. Dependiendo de lo que hagas con los ficheros, puedes incluso usar sapply o lapply. El 16/07/2014 12:16, "Juan Antonio Gil Pascual" <jgil@edu.uned.es> escribió:> Estimados compañeros tengo que realizar un procedimiento a un conjunto de > ficheros con unas mismas características. Todos están colocados en un > subdirectorio. Como salida del procedimiento tengo un data.frame que puedo > salvar en un fichero y un gráfico que salvaré en un pdf. En total son 144 > ficheros. ¿Cómo podría abordar el problema para no tener que crear los 144 > procedimientos?. > Muchas gracias y un cordial saludo, > > Juan > > -- > Juan Antonio Gil Pascual > Profesor de Metodología de la Investigación Cuantitativa > correo: jgil@edu.uned.es > web: www.uned.es/personal/jgil > > Dpto. MIDE > Facultad de Educación > c/Juan del Rosal, 14 desp. 2.72 > 28040 Madrid > Tel‚f. 91 3987279 > Fax. 91 3987288 > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Estimados compañeros tengo que realizar un procedimiento a un conjunto de ficheros con unas mismas características. Todos están colocados en un subdirectorio. Como salida del procedimiento tengo un data.frame que puedo salvar en un fichero y un gráfico que salvaré en un pdf. En total son 144 ficheros. ¿Cómo podría abordar el problema para no tener que crear los 144 procedimientos?. Muchas gracias y un cordial saludo, Juan -- Juan Antonio Gil Pascual Profesor de Metodología de la Investigación Cuantitativa correo: jgil en edu.uned.es web: www.uned.es/personal/jgil Dpto. MIDE Facultad de Educación c/Juan del Rosal, 14 desp. 2.72 28040 Madrid Tel?f. 91 3987279 Fax. 91 3987288
Hola Juan, Una forma es la siguiente: 1. Debes decirle a R donde estan los ficheros. Para ello usa setwd() 2. Determina el nombre de los ficheros. Usa list.files() 3. Toma el nombre de cada fichero, leelo y genera el data.frame() que necesitas. Al exportar el data.frame() usando write.table(), utiliza el nombre del fichero correspondiente, pero colocando al principio algo como "salida_" y luego el nombre del fichero seguido de ".txt" o algo similar. 4. Para el grafico, podrias usar pdf() # instrucciones van aqui dev.off() Dentro de pdf() deberias colocar el nombre del fichero con la extension ".pdf" al final. Supongamos que la funcion f1 toma el NOMBRE de un fichero y lo procesa, y que la funcion f2 toma el NOMBRE del fichero y hace el grafico. Podrias hacer lo siguiente: # set up setwd(...) archivos <- list.files(pattern = '.txt') # asumiendo que los archivos son .txt # leerlos info <- lapply(archivos, read.table, header = TRUE) # procesarlos lapply(info, f1) # graficos lapply(info, f2) La estuctura de f1 seria algo como f1 <- function(nombre){ # hacer proceso info <- info[nombre] out <- ... # contiene lo que quiero guardar write.table(out, paste0('salida_', nombre, '.txt'), ...) } y f2 seria algo como f2 <- function(nombre){ pdf(paste0(nombre, '.pdf') # hacer grafico dev.off() } Algo que podrias hacer es integrar f2 y f1 como a continuacion: f <- function(nombre){ # hacer proceso info <- info[nombre] out <- ... # contiene lo que quiero guardar write.table(out, paste0('salida_', nombre, '.txt'), ...) # grafico pdf(paste0(nombre, '.pdf') # hacer grafico con el objeto info dev.off() } Finalmente usarias setwd(...) archivos <- list.files(pattern = '.txt') # asumiendo que los archivos son .txt # leerlos info <- lapply(archivos, read.table, header = TRUE) # procesarlos lapply(info, f) Espero sea de utilidad. Saludos, Jorge.- 2014-07-16 20:25 GMT+10:00 Juan Antonio Gil Pascual <jgil@edu.uned.es>:> Estimados compañeros tengo que realizar un procedimiento a un conjunto de > ficheros con unas mismas características. Todos están colocados en un > subdirectorio. Como salida del procedimiento tengo un data.frame que puedo > salvar en un fichero y un gráfico que salvaré en un pdf. En total son 144 > ficheros. ¿Cómo podría abordar el problema para no tener que crear los 144 > procedimientos?. > Muchas gracias y un cordial saludo, > > Juan > > -- > Juan Antonio Gil Pascual > Profesor de Metodología de la Investigación Cuantitativa > correo: jgil@edu.uned.es > web: www.uned.es/personal/jgil > > Dpto. MIDE > Facultad de Educación > c/Juan del Rosal, 14 desp. 2.72 > 28040 Madrid > Tel'f. 91 3987279 > Fax. 91 3987288 > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Muchas gracias Emilio y Miguel Ángel, me habéis dado las ideas de cómo abordar el problema. Un saludo, Juan El 16/07/2014 12:24, Emilio L. Cano escribió:> > Puedes crear un bucle sobre el vector carácter que te devuelva la > función dir() sobre el directorio en cuestión. Dependiendo de lo que > hagas con los ficheros, puedes incluso usar sapply o lapply. > > El 16/07/2014 12:16, "Juan Antonio Gil Pascual" <jgil@edu.uned.es > <mailto:jgil@edu.uned.es>> escribió: > > Estimados compañeros tengo que realizar un procedimiento a un > conjunto de ficheros con unas mismas características. Todos están > colocados en un subdirectorio. Como salida del procedimiento tengo > un data.frame que puedo salvar en un fichero y un gráfico que > salvaré en un pdf. En total son 144 ficheros. ¿Cómo podría abordar > el problema para no tener que crear los 144 procedimientos?. > Muchas gracias y un cordial saludo, > > Juan > > -- > Juan Antonio Gil Pascual > Profesor de Metodología de la Investigación Cuantitativa > correo: jgil@edu.uned.es <mailto:jgil@edu.uned.es> > web: www.uned.es/personal/jgil <http://www.uned.es/personal/jgil> > > Dpto. MIDE > Facultad de Educación > c/Juan del Rosal, 14 desp. 2.72 > 28040 Madrid > Tel‚f. 91 3987279 <tel:91%203987279> > Fax. 91 3987288 <tel:91%203987288> > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org <mailto:R-help-es@r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Juan Antonio Gil Pascual Profesor de Metodología de la Investigación Cuantitativa correo: jgil@edu.uned.es web: www.uned.es/personal/jgil Dpto. MIDE Facultad de Educación c/Juan del Rosal, 14 desp. 2.72 28040 Madrid Tel‚f. 91 3987279 Fax. 91 3987288 [[alternative HTML version deleted]]