Ich versuche, eine CSV von Github in R zu lesen:
latent.growth.data <- read.csv("https://github.com/aronlindberg/latent_growth_classes/blob/master/LGC_data.csv")
Dies gibt mir jedoch:
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") : unsupported URL scheme
Ich habe es versucht ?read.csv
, ?download.file
, getURL
(das nur seltsames HTML zurückgab), sowie das Datenimporthandbuch , können aber immer noch nicht verstehen, wie es funktioniert.
Was mache ich falsch?
Versuche dies:
library(RCurl)
x <- getURL("https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv")
y <- read.csv(text = x)
Sie haben zwei Probleme:
RCurl
verwenden, um es zu umgehen. In einigen Fällen (allerdings nicht mit Github) können Sie https einfach durch http ersetzen und die Dinge klappen, so dass Sie das immer zuerst ausprobieren können, aber ich finde, dass RCurl zuverlässig ist und nicht zu viel zusätzliche Eingabe erforderlich ist.Aus der Dokumentation von url
:
Beachten Sie, dass https: // -Verbindungen (mit einigen Ausnahmen unter Windows) nicht unterstützt werden.
Das Problem ist also, dass R keine Verbindungen zu https
URLs zulässt.
Sie können download.file
mit curl
:
download.file("https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv",
destfile = "/tmp/test.csv", method = "curl")
Ich verwende R 3.0.2 und dieser Code erledigt die Arbeit.
urlfile<-'https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv'
dsin<-read.csv(urlfile)
und das auch
urlfile<-'https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv'
dsin<-read.csv(url(urlfile))
edit (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
Ähnlich wie bei akhmed dachte ich, ich würde die Antwort aktualisieren, da Sie jetzt einfach Hadleys readr
-Paket verwenden können. Nur eine Sache zu beachten: Sie müssen die URL als raw Inhalt angeben (siehe //raw.git...
unten). Hier ist ein Beispiel:
library(readr)
data <- read_csv("https://raw.githubusercontent.com/RobertMyles/Bayesian-Ideal-Point-IRT-Models/master/Senate_Example.csv")
Voilà!
Als ich feststellte, dass die Frage sehr alt ist, hat Google sie immer noch als Top-Ergebnis gemeldet (zumindest für mich), und ich habe beschlossen, die Antwort für das Jahr 2015 bereitzustellen.
Leute migrieren jetzt im Allgemeinen zu curl
(einschließlich des berühmten httr
), wie beschrieben von R-Bloggern , was die folgende sehr einfache Lösung bietet:
library(curl)
x <- read.csv( curl("https://raw.githubusercontent.com/trinker/dummy/master/data/gcircles.csv") )
Dafür habe ich geholfen rio. Grundsätzlich handelt es sich um ein universelles Datenimport-/exportpaket, das HTTPS/SSL unterstützt und den Dateityp von seiner Erweiterung ableitet, sodass Sie im Grunde alles mit einer Importfunktion lesen können:
library("rio")
Wenn Sie die "raw" -URL für Ihre CSV von Github abrufen, können Sie sie mit import
in einer Zeile laden:
import("https://raw.githubusercontent.com/aronlindberg/latent_growth_classes/master/LGC_data.csv")
Das Ergebnis ist ein 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
...
Eine ziemlich blöde Art ... mit Kopieren/Einfügen aus der Zwischenablage
x <- read.table(file = "clipboard", sep = "t", header=TRUE)
curl funktioniert möglicherweise nicht in Windows, zumindest bei mir
Das hat bei mir unter Windows funktioniert
download.file (" https://github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv ", destfile = "/tmp/test.csv",method="wininet")
In Linux
download.file (" https://github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv ", destfile = "/tmp/test.csv",method="curl")