【问题标题】:Rcpp with Rmarkdown? Error while compilyingRcpp 与 Rmarkdown?编译时出错
【发布时间】:2018-09-19 11:20:57
【问题描述】:

我想用 Rmarkdown 创建一个 html 文档。在 R 代码的开头,我需要获取一些 R 脚本,其中一个包含用 Rcpp 编写的 C++ 函数的定义。 Rmd 中的一段代码运行成功,但在编织时出现错误:

命令'sourceCpp(code = code,env = env,rebuild =rebuild,cacheDir = cacheDir,':错误1发生在构建共享库中的第85行错误。调用:... withVisible -> eval -> eval -> cppFunction -> sourceCpp

不幸的是,我无法分享我的整个代码,但它的结构如下所示。无论如何,似乎错误是由使用cppFunction引起的。如何处理这个以生成 html 或 pdf 文档?

```{r}
library(rlang)
library(tidyverse)
library(Rcpp)

source('directory\\script1.R')
source('directory\\script2.R')
```

【问题讨论】:

    标签: r r-markdown rcpp


    【解决方案1】:

    参见 knitr 文档——Rcpp 实际上是一个合适的处理器。所以你可以做

    ```{Rcpp firstChunk}
    Rcpp::IntegerVector doubleMe(Rcpp::IntegerVector x) {
      return x + x;
    }
    ```
    

    紧随其后

    ```{r secondChunk}
    myvector <- 19:21
    cat("The answer is ", tail(doubleMe(myvector), 1), "\n")
    ```
    

    它会做正确的事。您可以正式地依赖第二个块中的第一个块以及更多——请参阅 knitr 文档。

    【讨论】:

    • 由于某些我不明白的原因,我需要 Rcpp 而不是 rcpp 用于 Rmd 块中使用的语言。
    猜你喜欢
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多