Rcpp和Rmarkdown?编译时出错

时间:2018-09-19 11:20:58

标签: r r-markdown rcpp

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

  

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

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

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

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

1 个答案:

答案 0 :(得分:6)

请参阅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文档。