J'essaie de lire un CSV de github dans R:
latent.growth.data <- read.csv("https://github.com/aronlindberg/latent_growth_classes/blob/master/LGC_data.csv")
Cependant, cela me donne:
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") : unsupported URL scheme
J'ai essayé ?read.csv
, ?download.file
, getURL
(qui n'a renvoyé que du code HTML étrange), ainsi que le manuel d'importation de données , mais ne comprend toujours pas comment le faire fonctionner.
Qu'est-ce que je fais mal?
Essaye ça:
library(RCurl)
x <- getURL("https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv")
y <- read.csv(text = x)
Vous avez deux problèmes:
RCurl
pour le contourner. Dans certains cas (pas avec Github, cependant), vous pouvez simplement remplacer https par http et les choses fonctionnent, vous pouvez donc toujours essayer cela en premier, mais je trouve que l'utilisation de RCurl est fiable et pas trop de frappe supplémentaire.À partir de la documentation de url
:
Notez que les connexions ‘https: //’ ne sont pas prises en charge (à quelques exceptions près sous Windows).
Le problème est donc que R n'autorise pas les connexions aux https
URL.
Vous pouvez utiliser download.file
avec curl
:
download.file("https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv",
destfile = "/tmp/test.csv", method = "curl")
J'utilise R 3.0.2 et ce code fait le travail.
urlfile<-'https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv'
dsin<-read.csv(urlfile)
et cela aussi
urlfile<-'https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv'
dsin<-read.csv(url(urlfile))
modifier (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
Dans un style similaire à akhmed, je pensais que je mettrais à jour la réponse, car maintenant vous pouvez simplement utiliser le package readr
de Hadley. Une seule chose à noter: vous aurez besoin que l'URL soit le contenu raw (voir le //raw.git...
au dessous de). Voici un exemple:
library(readr)
data <- read_csv("https://raw.githubusercontent.com/RobertMyles/Bayesian-Ideal-Point-IRT-Models/master/Senate_Example.csv")
Voilà!
Conscient que la question est très ancienne, Google l'a toujours signalée comme un résultat optimal (du moins pour moi), j'ai donc décidé de fournir la réponse pour l'année 2015.
Les gens migrent généralement vers le package curl
(y compris le célèbre httr
) comme décrit par r-bloggers qui offre la solution très simple suivante:
library(curl)
x <- read.csv( curl("https://raw.githubusercontent.com/trinker/dummy/master/data/gcircles.csv") )
C'est ce que j'ai aidé à développer rio pour. Il s'agit essentiellement d'un package d'importation/exportation de données universel qui prend en charge HTTPS/SSL et déduit le type de fichier à partir de son extension, vous permettant ainsi de lire pratiquement n'importe quoi en utilisant une fonction d'importation:
library("rio")
Si vous récupérez l'URL "brute" de votre CSV depuis Github, vous pouvez la charger sur une ligne avec import
:
import("https://raw.githubusercontent.com/aronlindberg/latent_growth_classes/master/LGC_data.csv")
Le résultat est 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
...
Une façon plutôt fictive ... d'utiliser le copier/coller à partir du presse-papiers
x <- read.table(file = "clipboard", sep = "t", header=TRUE)
curl pourrait ne pas fonctionner dans les fenêtres au moins pour moi
C'est ce qui a fonctionné pour moi dans Windows
download.file (" https://github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv ", destfile = "/tmp/test.csv",method="wininet")
Sous Linux
download.file (" https://github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv ", destfile = "/tmp/test.csv",method="curl")