Прочтите CSV из github в R
Я пытаюсь прочитать CSV из github в R:
latent.growth.data <- read.csv("https://github.com/aronlindberg/latent_growth_classes/blob/master/LGC_data.csv")
Однако это дает мне:
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
(который возвращал только странный HTML), а также руководство по вводу данных, но все еще не может понять, как заставить его работать.
Что я делаю неправильно?
Ответы
Ответ 1
Попробуйте следующее:
library(RCurl)
x <- getURL("https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv")
y <- read.csv(text = x)
У вас есть две проблемы:
- Вы не привязываетесь к "необработанному" файлу, но Github отображаете версию (посетите URL-адрес https:\raw.github.com.... csv, чтобы увидеть разницу между исходная версия и отображаемая версия).
- https - проблема для R во многих случаях, поэтому вам нужно использовать пакет, например
RCurl
, чтобы обойти его. В некоторых случаях (но не с Github) вы можете просто заменить https на http, и все будет работать, поэтому вы всегда можете попробовать это сначала, но я нахожу использование RCurl надежным и не слишком большим количеством ввода.
Ответ 2
Из документации url
:
Обратите внимание, что 'https://соединения не поддерживаются (с некоторыми исключения в Windows).
Таким образом, проблема заключается в том, что R не разрешает подключения к URL https
.
Вы можете использовать download.file
с помощью curl
:
download.file("https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv",
destfile = "/tmp/test.csv", method = "curl")
Ответ 3
Я использую R 3.0.2, и этот код выполняет задание.
urlfile<-'https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv'
dsin<-read.csv(urlfile)
и это также
urlfile<-'https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv'
dsin<-read.csv(url(urlfile))
изменить (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
Ответ 4
В том же стиле, что и Ахмед, я решил обновить ответ, так как теперь вы можете просто использовать пакет Hadley readr
.
Необходимо отметить только одно: вам потребуется URL-адрес raw (см. Ниже //raw.git...
).
Вот пример:
library(readr)
data <- read_csv("https://raw.githubusercontent.com/RobertMyles/Bayesian-Ideal-Point-IRT-Models/master/Senate_Example.csv")
Вуаля!
Ответ 5
Это то, что я помогал в разработке rio для. Это в основном универсальный пакет импорта/экспорта данных, который поддерживает HTTPS/SSL и передает тип файла из его расширения, что позволяет вам читать в основном все, используя одну функцию импорта:
library("rio")
Если вы возьмете "сырой" URL-адрес своего CSV из Github, вы можете загрузить его на одну строку с помощью import
:
import("https://raw.githubusercontent.com/aronlindberg/latent_growth_classes/master/LGC_data.csv")
В результате получается 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
...
Ответ 6
Понимая, что вопрос очень старый, Google по-прежнему сообщил об этом как о главном (по крайней мере, для меня), поэтому я решил предоставить ответ на 2015 год.
Люди обычно переносятся теперь в пакет curl
(включая знаменитый httr
), как описано r-bloggers, который предлагает следующее: простое решение:
library(curl)
x <- read.csv( curl("https://raw.githubusercontent.com/trinker/dummy/master/data/gcircles.csv") )
Ответ 7
завиток может не работать в Windows по крайней мере для меня
Это то, что сработало для меня в Windows
download.file( " https://github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv", destfile = "/tmp/test.csv",method= "wininet" )
В Linux
download.file( " https://github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv", destfile = "/tmp/test.csv",method= "curl" )