[R-es] leer ficheros excel en R en Ubuntu

Jorge I Velez jorgeivanvelez en gmail.com
Vie Ago 15 09:38:38 CEST 2014


Hola Miguel,

Me queda claro lo de RODBC.  Lo que no entiendo muy bien es por que usas

 file.path(path.package('gdata'),'xls','madrid.xls')

cuando usas gdata.  Tus datos estan en la carpeta donde se encuentra en
paquete?  O estan en otro lugar?  Comenzaria revisando el path al archivo y
escribiendo

datos <- read.xls("/path/al/archivo/madrid.xls", sheet = 1, header = TRUE)
head(datos)

Que version de R tienes?   Has intentado reinstalando rJava desde sources()?

install.packages('rJava', type = 'source')
require('rJava')
require('xlsx')

Las otras opciones, como mencione en mi mensaje anterior, es usar scan() y
readLines().

Saludos,
Jorge.-



2014-08-15 17:29 GMT+10:00 Miguel Fiandor Gutiérrez <
miguel.fiandor.gutierrez en gmail.com>:

> Hola,
>
> @javier, me gustaría no tener que hacer nada de forma manual, ni por fuera
> de r, rstudio. Es decir, el típico comando de linux que me convierta de xls
> a csv prefiero no usarlo. Me gustaría hacerlo todo desde R.
>
> @jorge ->
>
> Con RODBC me salta ->
>
> Error: could not find function "odbcConnectExcel"
>
> Lo que creo que es inevitable en Ubuntu
> <http://stackoverflow.com/questions/3426523/odbcconnectexcel-function-from-rodbc-package-for-r-not-found-on-ubuntu>
> Con gdata ->
>
> Unable to open file '/home/miguelfg/R/x86_64-pc-linux-gnu-library/3.1/gdata/xls/madrid.xls'.Error in xls2sep(xls, sheet, verbose = verbose, ..., method = method,  :
>   Intermediate file '/tmp/RtmpHRuknw/filefed757fcc67.csv' missing!In addition: Warning message:running command ''/usr/bin/perl'
>
> Con XLConnect ->
>
> Error : package 'rJava' was built before R 3.0.0: please re-install itERROR: lazy loading failed for package 'XLConnectJars'* removing '/home/miguelfg/R/x86_64-pc-linux-gnu-library/3.1/XLConnectJars'Warning in install.packages :
>   installation of package 'XLConnectJars' had non-zero exit statusERROR: dependency 'XLConnectJars' is not available for package 'XLConnect'* removing '/home/miguelfg/R/x86_64-pc-linux-gnu-library/3.1/XLConnect'Warning in install.packages :
>   installation of package 'XLConnect' had non-zero exit status
>
> Con xlsReadWrite -> me dice que no está disponible para R 3.1.1 Con xlsx
> ->
>
> Error : package 'rJava' was built before R 3.0.0: please re-install itERROR: lazy loading failed for package 'xlsxjars'* removing '/home/miguelfg/R/x86_64-pc-linux-gnu-library/3.1/xlsxjars'Warning in install.packages :
>   installation of package 'xlsxjars' had non-zero exit statusERROR: dependency 'xlsxjars' is not available for package 'xlsx'* removing '/home/miguelfg/R/x86_64-pc-linux-gnu-library/3.1/xlsx'Warning in install.packages :
>   installation of package 'xlsx' had non-zero exit status
>
> ================================= Viendo que el problema parecía java +
> rJava, busqué y ejecuté -> sudo R CMD javareconf -e Pero parece que no
> termina bien -> conftest.c:1:17: fatal error: jni.h: No such file or
> directory compilation terminated. make: *** [conftest.o] Error 1 Unable to
> compile a JNI program
>
>
> El 15 de agosto de 2014, 2:23, Jorge I Velez <jorgeivanvelez en gmail.com>
> escribió:
>
> Hola Miguel,
>>
>> A que te refieres con "y nada"?  Obtienes algun error?  Algun mensaje?
>>  Has probado con scan() y/o readLines()?
>>
>> Saludos,
>> Jorge.-
>>
>>
>>
>> 2014-08-15 7:38 GMT+10:00 Miguel Fiandor Gutiérrez <
>> miguel.fiandor.gutierrez en gmail.com>:
>>
>>> Hola,
>>>
>>> Pensé que esto iba a ser trivial en R, pero me estoy encontrado muchos
>>> con
>>> mi problema en internet, y que las soluciones ofrecidas no terminan de
>>> funcionar.
>>>
>>> Estoy intentando leer un fichero .xls en ubuntu con los siguientes
>>> paquetes
>>> y nada:
>>>
>>> require(RODBC)
>>> conn = odbcConnectExcel("madrid.xls") # open a connection to the Excel
>>> file
>>> sqlTables(conn)$TABLE_NAME # show all sheets
>>> df = sqlFetch(conn, "Sheet1") # read a sheet
>>> df = sqlQuery(conn, "select * from [Sheet1 $]") # read a sheet
>>> (alternative
>>> SQL sintax)
>>> close(conn) # close the connection to the file
>>>
>>> require(gdata)
>>> xlsfile <- file.path(path.package('gdata'),'xls','madrid.xls')
>>> df = read.xls (xlsfile)
>>> df = read.xls (xlsfile, sheet = 1, header = TRUE)
>>> df = read.xls ("madrid.xls", sheet = 1, header = TRUE)
>>> df = read.xls ("madrid.xls")
>>>
>>> require(xlsx)
>>> read.xlsx("madrid.xls", sheetName = "Sheet1")
>>>
>>> library(XLConnect)
>>> wk = loadWorkbook("madrid.xls")
>>> df = readWorksheet(wk, sheet="Sheet1")
>>>
>>> --
>>>
>>> también he probado directamente read.table ya que el fichero es tipo xml
>>> por dentro:
>>> df = read.table("madrid.xls", header = TRUE)
>>>
>>>
>>> -- ejemplo del fichero:
>>> $ head -c 500 madrid.xls
>>> <table border="1"><tr><th bgcolor="#FFB18C">Nombre de la
>>> instalacion</th><th bgcolor="#FFB18C">Municipio de la instalacion</th><th
>>> bgcolor="#FFB18C">Provincia de la instalacion</th><th
>>> bgcolor="#FFB18C">Clave del registro</th><th bgcolor="#FFB18C">Codigo
>>> registro autonomico definitivo</th><th bgcolor="#FFB18C">Potencia nominal
>>> de la fase (kW)</th><th bgcolor="#FFB18C">Grupo Normativo</th><th
>>> bgcolor="#FFB18C">Tipo de Inscripcion</th></tr><tr><td>PERGOLA
>>> FOTOVOLTAICA
>>> JARDINES COMPLEJO DE MONCLOA
>>> ...
>>>
>>>
>>> Gracias de antemano.
>>>
>>> Por cierto, aprovecho que lanzo la pregunta es para una aplicación Shiny,
>>> alguna recomendación de como leer esta info solo una vez al arrancar el
>>> servidor?
>>>
>>>
>>> Miguel
>>>
>>>         [[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
>>>
>>
>>
>

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es