如何使用GitHub中的R脚本?

f4t66c6m  于 2023-03-05  发布在  Git
关注(0)|答案(4)|浏览(202)

我正在尝试使用GitHub plugin-draw.R上的一个R脚本,我应该如何使用这个插件?

oyt4ldly

oyt4ldly1#

你可以简单地使用devtools包中的source_url,使用你在文件的Github页面上点击raw得到的url:

library(devtools)
source_url("https://raw.github.com/tonybreyal/Blog-Reference-Functions/master/R/bingSearchXScraper/bingSearchXScraper.R")
编辑:仅使用source()

从R的最新版本开始,似乎可以简单地使用source()和相同的“原始”url:

source("https://raw.github.com/tonybreyal/Blog-Reference-Functions/master/R/bingSearchXScraper/bingSearchXScraper.R")
ls()
#> [1] "bingSearchXScraper"
ubof19bj

ubof19bj2#

基于@Matifou的回复,但使用“new”方法在URL末尾追加?raw=TRUE

devtools::source_url("https://github.com/tonybreyal/Blog-Reference-Functions/blob/master/R/bingSearchXScraper/bingSearchXScraper.R?raw=TRUE")
h5qlskok

h5qlskok3#

您可以使用R-Bloggers上提供的解决方案:

source_github <- function(u) {
  # load package
  require(RCurl)
 
  # read script lines from website
  script <- getURL(u, ssl.verifypeer = FALSE)
 
  # parase lines and evaluate in the global environment
  eval(parse(text = script))
}
 
source_github("https://raw.github.com/tonybreyal/Blog-Reference-Functions/master/R/bingSearchXScraper/bingSearchXScraper.R")

对于在全局环境中计算的函数 (我猜您会更喜欢这个解决方案),您可以用途:

source_https <- function(u, unlink.tmp.certs = FALSE) {
  # load package
  require(RCurl)
 
  # read script lines from website using a security certificate
  if(!file.exists("cacert.pem")) download.file(url="http://curl.haxx.se/ca/cacert.pem", destfile = "cacert.pem")
  script <- getURL(u, followlocation = TRUE, cainfo = "cacert.pem")
  if(unlink.tmp.certs) unlink("cacert.pem")
 
  # parase lines and evealuate in the global environement
  eval(parse(text = script), envir= .GlobalEnv)
}
 
source_https("https://raw.github.com/tonybreyal/Blog-Reference-Functions/master/R/bingSearchXScraper/bingSearchXScraper.R")
source_https("https://raw.github.com/tonybreyal/Blog-Reference-Functions/master/R/htmlToText/htmlToText.R", unlink.tmp.certs = TRUE)
z8dt9xmd

z8dt9xmd4#

如果是GitHub上的一个链接,你可以点击Blame旁边的Raw,你实际上可以使用普通的base::source,进入你选择的R脚本,找到Raw按钮。

现在链接将包含raw.githubusercontent.com,页面只显示R脚本本身。

source(
  paste0(
    "https://raw.githubusercontent.com/betanalpha/knitr_case_studies/master/", 
    "stan_intro/stan_utility.R"
  )
)

(使用paste0只是为了使URL适合更窄的屏幕。)

相关问题