¿Hay alguna manera de especificar y obtener datos de la URL de un sitio web en un archivo CSV para su análisis mediante R?
Solución
En el caso más simple, simplemente haga
X <- read.csv(url("http://some.where.net/data/foo.csv"))
además de las opciones que puedan necesitar.read.csv()
Edite en septiembre de 2020 o 9 años después:
Desde hace unos años, R también admite pasar directamente la URL a:read.csv
X <- read.csv("http://some.where.net/data/foo.csv")
Edición de finales de 2020. Continuidades de post originales.
Respuesta larga: Sí, esto se puede hacer y muchos paquetes han utilizado esa función durante años. Por ejemplo, los paquetes de la serie tseries utilizan exactamente esta función para descargar los precios de las acciones de Yahoo! durante casi una década:
R> library(tseries)
Loading required package: quadprog
Loading required package: zoo
‘tseries’ version: 0.10-24
‘tseries’ is a package for time series analysis and computational finance.
See ‘library(help="tseries")’ for details.
R> get.hist.quote("IBM")
trying URL 'http://chart.yahoo.com/table.csv? ## manual linebreak here
s=IBM&a=0&b=02&c=1991&d=5&e=08&f=2011&g=d&q=q&y=0&z=IBM&x=.csv'
Content type 'text/csv' length unknown
opened URL
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
.......... .......... .......... .......... ..........
........
downloaded 258 Kb
Open High Low Close
1991-01-02 112.87 113.75 112.12 112.12
1991-01-03 112.37 113.87 112.25 112.50
1991-01-04 112.75 113.00 111.87 112.12
1991-01-07 111.37 111.87 110.00 110.25
1991-01-08 110.37 110.37 108.75 109.00
1991-01-09 109.75 110.75 106.75 106.87
[...]
Todo esto está muy bien documentado en las páginas del manual para y . Vea también el manul en ‘Importación/ exportación de datos’ que venía con R.help(connection)
help(url)
Otras respuestas
A menudo, los datos de las páginas web tienen la forma de una tabla XML. Puede leer una tabla XML en R mediante el paquete XML.
En este paquete, la función
readHTMLTable(<url>)
buscará en una página tablas XML y devolverá una lista de marcos de datos (uno para cada tabla encontrada).