通过HTTPS获取R脚本

Mai*_*ura 26 r

有没有办法从网上获取R脚本?

例如 source('http://github.com/project/R/file.r')

原因:我目前有一个项目,我想提供使用但尚未准备好进行打包.因此,给人们一个单一的文件来源于网络(然后将来源所有单独的功能文件)会很棒.

仔细观察,问题似乎是https.我该如何获取此文件?

https://raw.github.com/hadley/stringr/master/R/c.r
Run Code Online (Sandbox Code Playgroud)

Eti*_*rie 29

您可以在devtools库中使用source_url

library(devtools)
source_url('https://raw.github.com/hadley/stringr/master/R/c.r')
Run Code Online (Sandbox Code Playgroud)

这是@ROLO的RCurl方法的包装器


ROL*_*OLO 22

是的,你可以尝试运行这个R教程:

source("http://www.mayin.org/ajayshah/KB/R/tutorial.R")
Run Code Online (Sandbox Code Playgroud)

(来源)

只有在Windows上支持Https,当使用--internet2命令行选项启动R时(请参阅常见问题解答):

> source("https://pastebin.com/raw.php?i=zdBYP5Ft")
> test()
[1] "passed"
Run Code Online (Sandbox Code Playgroud)

如果没有此选项,或者在Linux上,您将收到错误"不支持的URL方案".在这种情况下,请使用@ulidtko建议的解决方案,或者:

这是一种使用它的方法RCurl,它也支持https:

    library(RCurl)
    eval( expr = 
        parse( text = getURL("http://www.mayin.org/ajayshah/KB/R/tutorial.R",
                       ssl.verifypeer=FALSE) ))
Run Code Online (Sandbox Code Playgroud)

(ssl.verifypeer如果ssl证书有效,您可以删除)

  • 找到了解决方案:如果使用选项--internet2从https工作源启动R,请参阅[link](http://cran.r-project.org/bin/windows/rw-FAQ.html#The-Internet -download函数-fail_002e) (2认同)

uli*_*tko 12

是的,它可以立即为我工作.

R> source("http://pastebin.com/raw.php?i=zdBYP5Ft")
R> test()
[1] "passed"
Run Code Online (Sandbox Code Playgroud)

关于HTTPS部分,内部R代码不支持它.然而,R可以使用外部公用事业像wgetcurl抓取的https://网址.人们需要编写额外的代码才能使用source这些文件.

示例代码可能如下所示:

wget.and.source <- function(url) {
  fname <- tempfile()
  download.file(url, fname, method="wget")
  source(fname)
  unlink(fname)
}
Run Code Online (Sandbox Code Playgroud)

还有一个仅限Windows的解决方案:使用--internet2命令行选项启动R. 这将把R中的所有互联网代码切换为使用IE,因此HTTPS将起作用.

  • 使用`wget`实用程序也可以这样做:`source(pipe(paste("wget -O - ",URL)))`. (4认同)