RCPP с Rmarkdown?Ошибка при компиляции - PullRequest
0 голосов
/ 19 сентября 2018

Я хочу создать HTML-документ с помощью Rmarkdown.В начале кода R мне нужно получить несколько сценариев R, в то время как один из них содержит определение функции C ++, записанной с Rcpp.Часть кода в 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 голосов
/ 19 сентября 2018

См. Документацию 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.

...