将CSV从github读入R

将CSV从github读入R,r,data-manipulation,data-management,R,Data Manipulation,Data Management,我正在尝试将CSV从github读入R: latent.growth.data <- read.csv("https://github.com/aronlindberg/latent_growth_classes/blob/master/LGC_data.csv") 我尝试了?read.csv,?download.file,getURL(它只返回奇怪的HTML)以及,但仍然无法理解如何使它工作 我做错了什么?来自url的文档: download.file("https://raw.git

我正在尝试将CSV从github读入R:

latent.growth.data <- read.csv("https://github.com/aronlindberg/latent_growth_classes/blob/master/LGC_data.csv")
我尝试了
?read.csv
?download.file
getURL
(它只返回奇怪的HTML)以及,但仍然无法理解如何使它工作


我做错了什么?

来自
url
的文档:

download.file("https://raw.github.com/aronlindberg/latent_growth_classes/master/LGC_data.csv", 
    destfile = "/tmp/test.csv", method = "curl")
请注意,不支持“https://”连接(某些 Windows上的异常)

所以问题是R不允许连接到
https
URL

您可以将
download.file
curl
一起使用:

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

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

x我使用的是r3.0.2,这段代码完成了这项工作

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

这就是我一直在帮助力拓发展的原因。它基本上是一个通用数据导入/导出包,支持HTTPS/SSL,并从其扩展名推断文件类型,因此允许您使用一个导入功能基本上读取任何内容:

library("rio")
如果您从Github获取CSV的“原始”url,您可以使用
导入
将其加载一行:

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
...

意识到这个问题已经很老了,谷歌仍将其列为最重要的结果(至少对我而言),因此我决定在2015年提供答案

人们现在通常会迁移到
curl
包(包括著名的
httr
),它提供了以下非常简单的解决方案:

library(curl)

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

xcurl可能在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”)

与akhmed的风格类似,我想我会更新答案,因为现在您可以使用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")
库(readr)

数据一种相当虚假的方式。。。使用“从剪贴板复制/粘贴”

x <- read.table(file = "clipboard", sep = "t", header=TRUE)

x似乎现在GitHub希望您通过他们的API获取内容。我使用的软件包如下:

require(gh)
tmp=tempfile()
库尔https://raw.githubusercontent.com/aronlindberg/latent_growth_classes/master/LGC_data.csv'
#下载
gh(粘贴0('GET',qurl),.destfile=tmp,.overwrite=TRUE)
#阅读
read.csv(tmp)
重要的部分是您提供个人访问令牌(PAT)。通过
gh(.token=)
参数,或者像我那样,在
~/.Renviron
文件[1]中全局设置PAT。当然,您首先必须在自己的位置创建PAT

[1]
~/.Renviron
,我想所有包都会首先搜索它,就像一个包一样。其中的令牌应如下所示:

GITHUB_PAT = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"


您也可以使用该包设置PAT。

正如其他帖子所提到的,只需转到github上原始代码的链接即可

例如:


x@DirkEddelbuettel虽然它确实依赖于安装Curl,但引用自
?url
:请注意,除Windows外,不支持“https://”url方案。如何解决函数中的
错误(type,msg,asError=TRUE):SSL证书问题:无法获取本地颁发者证书
?出于内存/空间的目的,也可以作为一行写入:
y我尝试了此操作,但无效
x@Ben10,您没有使用原始URL。你能试试看它是否有效吗?我试了一下,得到了
get\u ext(file):file没有扩展名
@Adrian在最新的Github版本中有一个小的打字错误。从CRAN安装旧版本或从Github重新安装,它应该适合您。谢谢-问题已经解决。您的解决方案是唯一适合我的解决方案(Windows 8.1)
x <- read.table(file = "clipboard", sep = "t", header=TRUE)
GITHUB_PAT = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"