Lee un CSV de github en R

Estoy tratando de leer un CSV de github en R:

latent.growth.data <- read.csv("https://github.com/aronlindberg/latent_growth_classes/blob/master/LGC_data.csv") 

Sin embargo, esto me da:

 Error in file(file, "rt") : cannot open the connection In addition: Warning message: In file(file, "rt") : unsupported URL scheme 

?read.csv ?download.file , getURL (que solo devolvía HTML extraño), así como el manual de importación de datos , pero todavía no puedo entender cómo hacerlo funcionar.

¿Qué estoy haciendo mal?

Prueba esto:

 library(RCurl) x <- getURL("https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv") y <- read.csv(text = x) 

Tienes dos problemas:

  1. No está vinculando al archivo "en bruto", sino a la versión de Github (visite la URL de https: \ raw.github.com .... csv para ver la diferencia entre la versión sin formato y la versión de visualización ).
  2. https es un problema para R en muchos casos, por lo que debe usar un paquete como RCurl para RCurl . Sin embargo, en algunos casos (aunque no con Github) simplemente puedes reemplazar https con http y todo funciona, así que siempre puedes probarlo primero, pero encuentro que usar RCurl es confiable y no requiere demasiada mecanografía.

De la documentación de la url :

Tenga en cuenta que las conexiones ‘https: //’ no son compatibles (con algunas excepciones en Windows).

Entonces, el problema es que R no permite las condenas a las URL de https .

Puede usar download.file con curl :

 download.file("https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv", destfile = "/tmp/test.csv", method = "curl") 

Estoy usando R 3.0.2 y este código hace el trabajo.

 urlfile<-'https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv' dsin<-read.csv(urlfile) 

y esto también

 urlfile<-'https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv' dsin<-read.csv(url(urlfile)) 

editar (sessionInfo)

 R version 3.0.2 (2013-09-25) Platform: i386-w64-mingw32/i386 (32-bit) locale: [1] LC_COLLATE=Polish_Poland.1250 LC_CTYPE=Polish_Poland.1250 [3] LC_MONETARY=Polish_Poland.1250 LC_NUMERIC=C [5] LC_TIME=Polish_Poland.1250 attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] tools_3.0.2 

Al darme cuenta de que la pregunta es muy antigua, Google todavía la reportó como un resultado superior (al menos para mí), así que decidí brindar la respuesta para el año 2015.

La gente generalmente está migrando ahora al paquete curl (incluido el famoso httr ) según lo describen r-bloggers, que ofrece la siguiente solución muy simple:

 library(curl) x <- read.csv( curl("https://raw.githubusercontent.com/trinker/dummy/master/data/gcircles.csv") ) 

En un estilo similar al de akhmed, pensé que actualizaría la respuesta, ya que ahora puedes usar el paquete readr de Hadley. Solo una cosa para tener en cuenta: necesitarás que la url sea el contenido en bruto (mira el //raw.git... continuación). Aquí hay un ejemplo:

 library(readr) data <- read_csv("https://raw.githubusercontent.com/RobertMyles/Bayesian-Ideal-Point-IRT-Models/master/Senate_Example.csv") 

Voilà!

Esto es por lo que he estado ayudando a desarrollar Rio . Básicamente es un paquete de importación / exportación de datos universal que admite HTTPS / SSL e infiere el tipo de archivo desde su extensión, lo que le permite leer básicamente cualquier cosa utilizando una función de importación:

 library("rio") 

Si tomas la url “cruda” para tu CSV de Github, puedes cargarla una línea con import :

 import("https://raw.githubusercontent.com/aronlindberg/latent_growth_classes/master/LGC_data.csv") 

El resultado es un data.frame:

  top100_repository_name month monthly_increase monthly_begin_at monthly_end_with 1 Bukkit 2012-03 9 431 440 2 Bukkit 2012-04 19 438 457 3 Bukkit 2012-05 19 455 474 4 Bukkit 2012-06 18 475 493 5 Bukkit 2012-07 15 492 507 6 Bukkit 2012-08 50 506 556 ... 

Curl podría no funcionar en Windows al menos para mí

Esto es lo que funcionó para mí en Windows

download.file (” https://github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv “, destfile = “/tmp/test.csv”,method=”wininet”)

En Linux

download.file (” https://github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv “, destfile = “/tmp/test.csv”,method=”curl”)