Подтвердить что ты не робот

Прочтите 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), а также руководство по вводу данных, но все еще не может понять, как заставить его работать.

Что я делаю неправильно?

4b9b3361

Ответ 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") )