代码之家  ›  专栏  ›  技术社区  ›  Xia.Song

如何从在线cpp开源软件(如Rstudio的github)中获取资源?

  •  0
  • Xia.Song  · 技术社区  · 7 年前

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

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

    我遇到了这个问题:

    目录名(文件)中出错:应为字符向量参数

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   Dirk is no longer here    7 年前

    只需使用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. 您需要一个不同的URL。您列出的将下载 html 页但您需要原始源代码,在本例中 https://raw.githubusercontent.com/slwu89/MCMC/master/adaptMCMC_source.cpp
    2. 您可以创建一个简单的助手函数,该函数接受url,创建一个具有扩展名的tempfile .cpp (嘿,这个参数曾经是我对基R;-)的补丁,然后返回该文件名。

    见下文:

    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 ) )
    

    这可以很好地编译(尽管有关于有符号/无符号比较的警告)。