我想用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')
```
答案 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文档。