16.11.15

Importar Desde Internet

Importar Desde Internet

Hola continuamos con la importación de archivos al entorno de R. Una de las cualidades mejor desarrolladas en R que otros programas estadísticos, es la posibilidad de conectarse directamente a páginas en la red y descargar la información.
Las organizaciones gubernamentales o no gubernamentales generan una gran cantidad de información disponibles para toda persona que quiera accederla. Por ejemplo datos del gobierno de diferentes países como Estados Unidos, de España o de México.



Por ejemplo en la página de datos de México, y buscamos y seleccionamos información que necesitemos o nos interese, copiamos la dirección al archivo con extensión .csv
> url<-"http://datos.cfe.gob.mx/Datos/Electrificacionrural.csv"
> data<-read.csv(url)
> head(data)
  ï..Nº  Entidad.Federativa X2005 X2006 X2007 X2008 X2009 X2010 X2011 X2012 X2013 X2014
1      1      Aguascalientes 99.05 99.15 99.17 99.19 99.22 99.16 99.17 99.18 99.45 99.63   
2      2     Baja California 96.80 97.87 97.34 97.40 97.58 97.98 98.56 98.94 99.08 99.24   
3      3 Baja California Sur 97.15 97.33 97.16 97.28 97.30 96.56 97.16 97.58 97.75 98.84   
4      4            Campeche 92.30 93.05 93.23 93.23 94.02 96.62 97.80 97.87 97.99 98.34   
5      5            Coahuila 98.50 98.64 98.50 98.82 98.95 99.43 99.50 99.53 99.54 99.63   
6      6              Colima 98.23 98.37 98.02 98.05 98.05 98.93 98.93 98.97 98.97 99.19   

Para leer archivos tipo excel con extensión xlsx utilizamos el paquete xlsx, pero antes necesitamos descargarlo a nuestro directorio de trabajo, y para leerlo utilizamos la función read.xlsx().
> url<-"http://en.openei.org/doe-opendata/dataset/19316a50-e55d-45e2-b692-efcebfe16c95/resource/544e4dcc-95bc-480a-9669-64e444356c46/download/solarresourceenergytiltlatsubtotaled.xlsx"
> download.file(url,destfile = "ejemplo1.xlsx",mod="wb")
Warning message:
In download.file(url, destfile = "ejemplo1.xlsx", mod = "wb") :
  downloaded length 90764 != reported length 200
> data<-read.xlsx("ejemplo1.xlsx",sheetIndex = 1)
> head(data)
            Country Class KWh.m.2.day     KWh.year   MWh.year    GWh.year    TWh.year
1       Afghanistan     9     4.5 - 5 4.186065e+09    4186065    4186.065    4.186065
2       Afghanistan    10     5 - 5.5 5.585763e+11  558576333  558576.333  558.576333
3       Afghanistan    11     5.5 - 6 1.328891e+12 1328890559 1328890.559 1328.890559
4       Afghanistan    12     6 - 6.5 8.510123e+10   85101230   85101.230   85.101230
5       Afghanistan    13     6.5 - 7 6.003625e+09    6003625    6003.625    6.003625
6 Afghanistan Total    NA        <NA> 1.982758e+12 1982757812 1982757.812 1982.757812

Para archivos comprimidos en formato .zip, primero descargamos el archivos con download.file(), seguido los descomprimimos, y dependiendo de que archivos son ocuparemos funciones para leerlos.
> url<-"http://en.openei.org/doe-opendata/dataset/0837cfb1-3c29-491e-b3a5-27067ba8bfc8/resource/f1e8a79e-3330-4dfc-9035-5da1b7d8fc8e/download/bpd1.zip"
> download.file(url,destfile = "dataset.zip",mod="wb")
> unzip("dataset.zip",exdir = ".")
> data<-read.csv("1_ResCharacteristics_DataJam.csv")
> str(data)
'data.frame': 29393 obs. of  20 variables:
 $ DataJamID            : int  1 2 3 4 5 6 7 8 9 10 ...
 $ FACILITYTYPEID       : int  1 1 1 1 1 1 1 1 1 1 ...
 $ YEARCOMPLETED        : int  1970 1973 1975 1975 1978 1961 1984 1967 1960 2006 ...
 $ CENSUSDIVISIONID     : int  NA NA NA NA NA NA NA NA NA NA ...
 $ GROSSFLOORAREA       : int  2733 3948 1676 1656 1612 920 760 1457 1092 2419 ...
 $ NUMFLOORS            : int  1 3 1 1 2 1 1 1 1 1 ...
 $ WALLTYPEID           : int  NA NA NA NA NA NA NA NA NA NA ...
 $ WINDOWGLASSTYPE      : logi  NA NA NA NA NA NA ...
 $ ATTICINSTHICKNESS    : logi  NA NA NA NA NA NA ...
 $ WALLINSTHICKNESS     : logi  NA NA NA NA NA NA ...
 $ ZIPCODE              : int  32603 32607 32605 32605 32601 32609 32641 32603 32609 32606 ...
 $ CLIMATEZONEID        : int  NA NA NA NA NA NA NA NA NA NA ...
 $ ASSET_HEATING_FUEL_ID: int  2 2 2 2 2 1 1 2 1 1 ...
 $ HEATING_SYS          : int  4 4 4 4 4 1 1 4 1 1 ...
 $ HEATINGSYST_EFF      : num  NA NA NA NA NA NA NA NA NA NA ...
 $ HEATINGSYST_EFF_FLAG : Factor w/ 2 levels "","VINTAGE": 1 1 1 1 1 1 1 1 1 1 ...
 $ ASSET_COOLING_FUEL_ID: int  2 2 2 2 2 2 NA 2 2 2 ...
 $ COOLING_SYS          : int  19 19 19 19 19 19 NA 19 19 19 ...
 $ COOLINGSYST_EFF      : int  6 6 6 6 6 6 NA 6 6 12 ...
 $ COOLINGSYST_EFF_FLAG : Factor w/ 2 levels "","VINTAGE": 1 1 1 1 1 1 1 1 1 1 ...



Con esto terminamos de ver la Importación desde Internet, faltaría leer para otros formatos de archivos (xls, dav, json, shapefile, entre otros). Continua aprendiendo y nos vemos en el próximo post.
                                                                                                                             

3 comentarios:

  1. Hola gracias por el aporte, probé tu script y me funciono perfectamente con las mismas bases de datos, sin embargo eh corrido el mismo script para descargar bases de datos de la Pagina web de INIFAP, para descargar las bases de datos diarios de las estaciones agroclimaticas de INIFAP, me marca un error y no me descarga nada, te adjunto el script:

    url<-"https://clima.inifap.gob.mx/lnmysr/Historicos/Datos?Estado=18&Estacion=41993&Anio=2010&Mes=2/hist.xlsx"
    download.file(url, destfile = "Febrero.xlsx", mode = "wb")
    print(url)
    Febrero <- read.xlsx

    ResponderBorrar
  2. De nuevo muchas gracias por el aporte, esperando que me puedas ayudar a identificar el error

    ResponderBorrar