有没有办法从网上获取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证书有效,您可以删除)
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可以使用外部公用事业像wget或curl抓取的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将起作用.