Hola buenas, tengo varios set de datos métidos en páginas excel, leerlas es fácil, el problema es que no encuentro ninguna manera buena de seleccionar solo algunas filas y columnas de cada una de las hojas. Los ficheros están sucios ya que antiguamente hacian el analisis de datos en excel. Podría borrarlo a mano, de hecho lo estoy haciendo a mano, pero si me ayudais os lo agradeceré. Un saludo [[alternative HTML version deleted]]
Hola, El paquete "xlsx" (lee y escribe Excel hasta el 2007), permite leer un cierto número de filas y columnas: read.xlsx(file, sheetIndex, sheetName=NULL, rowIndex=NULL, colIndex=NULL, as.data.frame=TRUE, header=TRUE, colClasses=NA, keepFormulas=FALSE, encoding="unknown", ...) read.xlsx2(file, sheetIndex, sheetName=NULL, startRow=1, colIndex=NULL, endRow=NULL, as.data.frame=TRUE, header=TRUE, colClasses="character", ...) Argumentsfile the *absolute* path to the file which the data are to be read from. sheetIndex a number representing the sheet index in the workbook. sheetName a character string with the sheet name. rowIndex a numeric vector indicating the rows you want to extract. If NULL, all rows found will be extracted. colIndex a numeric vector indicating the cols you want to extract. If NULL, all columns found will be extracted. Saludos, Carlos Ortega www.qualityexcellence.es El 4 de mayo de 2012 11:29, Javier Villacampa González < javier.villacampa.gonzalez@gmail.com> escribió:> Hola buenas, > > tengo varios set de datos métidos en páginas excel, leerlas es fácil, el > problema es que no encuentro ninguna manera buena de seleccionar solo > algunas filas y columnas de cada una de las hojas. > > Los ficheros están sucios ya que antiguamente hacian el analisis de datos > en excel. Podría borrarlo a mano, de hecho lo estoy haciendo a mano, pero > si me ayudais os lo agradeceré. > > Un saludo > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Yo he tenido muchos problemas con ese tipo de paquetes (en cuanto tienes gráficas en los ficheros EXCEL, por ejemplo, no funcionan bien). Lo mejor que he podido hacer hasta ahora es pasar a texto y después operar con scan directamente. Si conocéis algún paquete que vaya bien con ficheros complejos de EXCEL me interesaría mucho. Gracias y un saludo. Isidro. BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; } On Fri 04/05/12 11:36 , Carlos Ortega cof@qualityexcellence.es sent: Hola, El paquete "xlsx" (lee y escribe Excel hasta el 2007), permite leer un cierto número de filas y columnas: read.xlsx(file, sheetIndex, sheetName=NULL, rowIndex=NULL, colIndex=NULL, as.data.frame=TRUE, header=TRUE, colClasses=NA, keepFormulas=FALSE, encoding="unknown", ...) read.xlsx2(file, sheetIndex, sheetName=NULL, startRow=1, colIndex=NULL, endRow=NULL, as.data.frame=TRUE, header=TRUE, colClasses="character", ...) Argumentsfile the *absolute* path to the file which the data are to be read from. sheetIndex a number representing the sheet index in the workbook. sheetName a character string with the sheet name. rowIndex a numeric vector indicating the rows you want to extract. If NULL, all rows found will be extracted. colIndex a numeric vector indicating the cols you want to extract. If NULL, all columns found will be extracted. Saludos, Carlos Ortega www.qualityexcellence.es [1] El 4 de mayo de 2012 11:29, Javier Villacampa González < > escribió: > Hola buenas, > > tengo varios set de datos métidos en páginas excel, leerlas es fácil, el > problema es que no encuentro ninguna manera buena de seleccionar solo > algunas filas y columnas de cada una de las hojas. > > Los ficheros están sucios ya que antiguamente hacian el analisis de datos > en excel. Podría borrarlo a mano, de hecho lo estoy haciendo a mano, pero > si me ayudais os lo agradeceré. > > Un saludo > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help-es [4] > > -- Saludos, Carlos Ortega www.qualityexcellence.es [5] [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list https://stat.ethz.ch/mailman/listinfo/r-help-es [7] Links: ------ [1] http://webmail.jccm.es/parse.php?redirect=http://www.qualityexcellence.es [4] https://webmail.jccm.es/parse.php?redirect=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help-es [5] http://webmail.jccm.es/parse.php?redirect=http://www.qualityexcellence.es [7] http://webmail.jccm.es/parse.php?redirect=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help-es [[alternative HTML version deleted]]
Hola Javier. Échale un ojo a XLConnect. Hace todo lo que necesitas. http://cran.r-project.org/web/packages/XLConnect/vignettes/XLConnect.pdf Un Saludo, ________________________________________________________ Miguel Ángel Rodríguez Muíños Dirección Xeral de Innovación e Xestión da Saúde Pública Consellería de Sanidade Xunta de Galicia http://dxsp.sergas.es ________________________________________________________ -----Mensaje original----- De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Javier Villacampa González Enviado el: viernes, 04 de mayo de 2012 11:30 Para: r-help-es en r-project.org Asunto: [R-es] Leer excel Hola buenas, tengo varios set de datos métidos en páginas excel, leerlas es fácil, el problema es que no encuentro ninguna manera buena de seleccionar solo algunas filas y columnas de cada una de las hojas. Los ficheros están sucios ya que antiguamente hacian el analisis de datos en excel. Podría borrarlo a mano, de hecho lo estoy haciendo a mano, pero si me ayudais os lo agradeceré. Un saludo [[alternative HTML version deleted]] 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
Hola Isidro, Una forma facil de leer en R archivos de Excel es utilizando la funcion read.xls en "gdata". A traves de esta puedes leer hojas completas de archivos en formatos xls y xlsx. Mas opciones en http://rwiki.sciviews.org/doku.php?id=tips:data-io:ms_windows Un saludo, Jorge.- 2012/5/4 Isidro Hidalgo Arellano <>> > > Yo he tenido muchos problemas con ese tipo de paquetes (en cuanto > tienes gráficas en los ficheros EXCEL, por ejemplo, no funcionan > bien). Lo mejor que he podido hacer hasta ahora es pasar a texto y > después operar con scan directamente. > > Si conocéis algún paquete que vaya bien con ficheros complejos de > EXCEL me interesaría mucho. > > Gracias y un saludo. > > Isidro. BODY { font-family:Arial, Helvetica, > sans-serif;font-size:12px; } > On Fri 04/05/12 11:36 , Carlos Ortega sent: > Hola, > El paquete "xlsx" (lee y escribe Excel hasta el 2007), permite leer > un > cierto número de filas y columnas: > read.xlsx(file, sheetIndex, sheetName=NULL, rowIndex=NULL, > colIndex=NULL, as.data.frame=TRUE, header=TRUE, colClasses=NA, > keepFormulas=FALSE, encoding="unknown", ...) > read.xlsx2(file, sheetIndex, sheetName=NULL, startRow=1, > colIndex=NULL, endRow=NULL, as.data.frame=TRUE, header=TRUE, > colClasses="character", ...) > Argumentsfile > the *absolute* path to the file which the data are to be read from. > sheetIndex > a number representing the sheet index in the workbook. > sheetName > a character string with the sheet name. > rowIndex > a numeric vector indicating the rows you want to extract. If NULL, > all rows > found will be extracted. > colIndex > a numeric vector indicating the cols you want to extract. If NULL, > all > columns found will be extracted. > Saludos, > Carlos Ortega > www.qualityexcellence.es [1] > El 4 de mayo de 2012 11:29, Javier Villacampa González < > > escribió: > > Hola buenas, > > > > tengo varios set de datos métidos en páginas excel, leerlas es > fácil, el > > problema es que no encuentro ninguna manera buena de seleccionar > solo > > algunas filas y columnas de cada una de las hojas. > > > > Los ficheros están sucios ya que antiguamente hacian el analisis > de datos > > en excel. Podría borrarlo a mano, de hecho lo estoy haciendo a > mano, pero > > si me ayudais os lo agradeceré. > > > > Un saludo > > > > [[alternative HTML version deleted]] > > > > > > _______________________________________________ > > R-help-es mailing list > > > > https://stat.ethz.ch/mailman/listinfo/r-help-es [4] > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es [5] > [[alternative HTML version deleted]] > _______________________________________________ > R-help-es mailing list > https://stat.ethz.ch/mailman/listinfo/r-help-es [7] > > > Links: > ------ > [1] > http://webmail.jccm.es/parse.php?redirect=http://www.qualityexcellence.es > [4] > > https://webmail.jccm.es/parse.php?redirect=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help-es > [5] > http://webmail.jccm.es/parse.php?redirect=http://www.qualityexcellence.es > [7] > > http://webmail.jccm.es/parse.php?redirect=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help-es > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
Hola Javier Otro Javier (yo), se canso de tener problemas y cosas raras, entonces guarda en csv y luego importa eso a R, es medio engorroso, pero tiene dos ventajas, el separar los datos originales de los datos que toco en R (seguridad, no se porque siempre guardo los originales) y el acomodar en excel (o access) lo que es de excel, escribiendo menos en R, aunque una alternativa que es fácil, es importar desde la ayuda gráfica de Rcmdr. En mi caso, el importar fechas es terrible, encontré una forma luego de mucho trabajo y sigo con ese tratamiento para todo, incluso me encontré con fechas mal convertidas (si no miraba el original y el data.frame). Javier -----Mensaje original----- From: Javier Villacampa González Sent: Friday, May 04, 2012 6:29 AM To: r-help-es en r-project.org Subject: [R-es] Leer excel Hola buenas, tengo varios set de datos métidos en páginas excel, leerlas es fácil, el problema es que no encuentro ninguna manera buena de seleccionar solo algunas filas y columnas de cada una de las hojas. Los ficheros están sucios ya que antiguamente hacian el analisis de datos en excel. Podría borrarlo a mano, de hecho lo estoy haciendo a mano, pero si me ayudais os lo agradeceré. Un saludo [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
He hecho un script que hace lo que yo quería. Carga el sistema y lo tengo que pasar en dos veces (En el trabajo uso Windows con un ordenador viejo) Aquí os lo dejo por si a alguien más le sirve: rm(list=ls()) library(RODBC) #Librería que permite leer en excel y hacer consultas sql library(XLConnect) setwd("C:/Documents and Settings/UIB/Mis documentos/Dropbox/Paco/Bayes/Bayes Analisis Javier/Comportamentales") fileXLS<-"plantillas_ngc.xls" x<-odbcConnectExcel(fileXLS) xT<<-sqlTables(x) Nhojas<-length(xT$TABLE_NAME) rm(x,xT) NgrandeRow<-1500 #Un numero grande de columnas para que no nos dejemos ninguna i<-1 for(i in 1:Nhojas){ print(paste(i, "de", Nhojas)) datosAux<- readWorksheetFromFile(fileXLS , sheet = i ,header = T ,startCol = 1 ,startRow = 4 ,endCol = 21 ,endRow = NgrandeRow ) datosAux<-datosAux[-1,] datosAux<-datosAux[!is.na(datosAux$Trial),] datosAux<-datosAux[datosAux$Event.Type=="Picture",c("Subject" ,"Trial","Code","code","RT","Err" )] if(i==1){ datos<-datosAux }else{ datos<-rbind(datos,datosAux) } } head(datos,20) tail(datos,20) #write.table(datos,file="aux.csv", sep="\t",quote=F,row.names=F) i NgrandeRow Nhojas [[alternative HTML version deleted]]
Hola Javier. Yo usaría directamente XLConnect para leer el fichero Excel. require(XLConnect) wb.datos=loadWorkbook("C:/Documents and Settings/UIB/Mis documentos/Dropbox/Paco/Bayes/Bayes Analisis Javier/Comportamentales/plantillas_ngc.xls", create=FALSE) misdatos=readWorksheet(wb.datos, sheet=1) Un Saludo, Miguel. ________________________________________ De: r-help-es-bounces en r-project.org [r-help-es-bounces en r-project.org] En nombre de Javier Villacampa González [javier.villacampa.gonzalez en gmail.com] Enviado el: viernes, 04 de mayo de 2012 18:39 Para: r-help-es en r-project.org Asunto: Re: [R-es] Leer Excel He hecho un script que hace lo que yo quería. Carga el sistema y lo tengo que pasar en dos veces (En el trabajo uso Windows con un ordenador viejo) Aquí os lo dejo por si a alguien más le sirve: [...] 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
Muchas gracias Miguel. Funciona increiblemente mejor. Problema solucionado. Aquí os paso la solución para el que se quiera ahorrar trabajo file<-getwd() require(XLConnect) wb.datos=loadWorkbook(paste(file,"/plantillas_ngc.xls", sep=""), create=FALSE) #misdatos=readWorksheet(wb.datos, sheet=1) for(i in 1:Nhojas){ print(paste(i, "de", Nhojas)) datosAux<- readWorksheet(wb.datos , sheet = i ,header = T ,startCol = 1 ,startRow = 4 ,endCol = 21 ,endRow = NgrandeRow ) datosAux<-datosAux[-1,] datosAux<-datosAux[!is.na(datosAux$Trial),] datosAux<-datosAux[datosAux$Event.Type=="Picture",c("Subject" ,"Trial","Code","code","RT","Err" )] if(i==1){ datos<-datosAux }else{ datos<-rbind(datos,datosAux) } } head(datos,20) tail(datos,20) [[alternative HTML version deleted]]