如何从Rstudio的github在线cpp开源获取?

时间:2018-03-07 13:28:15

标签: github rcpp

我正在尝试通过以下方式获取在线存储库中存在的代码:

Rcpp::sourceCpp(
 url("https://github.com/slwu89/MCMC/blob/master/adaptMCMC_source.cpp")
)

我遇到了这个问题:

  

dirname(文件)出错:预期的字符向量参数

enter image description here

1 个答案:

答案 0 :(得分:1)

只需使用R' download.file()

library(Rcpp)
remurl <- "https://github.com/slwu89/MCMC/blob/master/adaptMCMC_source.cpp"
locfile <- "/tmp/mcmc.cpp"
download.file(url=remurl, destfile=locfile)
sourceCpp(locfile)   # dozens of error for _this_ file

编辑以下是使用两个重要修复程序的更好方法:

  1. 您需要一个不同的网址。您列出的那个将下载 html 页面。但是您需要原始源代码,在本例中为https://raw.githubusercontent.com/slwu89/MCMC/master/adaptMCMC_source.cpp
  2. 你可以创建一个简单的帮助函数,它接受url,创建一个扩展名为.cpp的临时文件(嘿,该参数曾经是我的补丁,基于R ;-)然后返回该文件名。
  3. 见下文:

    u2f <- function(url) { 
       tf <- tempfile() 
       download.file(url, tf, quiet=TRUE) 
       tf 
    }
    library(Rcpp)
    url <- "https://raw.githubusercontent.com/slwu89/MCMC/master/adaptMCMC_source.cpp"
    sourceCpp( u2f( url ) )
    

    并且编译得很好(虽然有关于签名/未签名比较的警告)。