将CSV从github读入R
我正在尝试将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
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"