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]]