Я заранее извинюсь за отсутствие воспроизводимого примера (пока) - если это не будет легким ответом, я завтра поработаю над ним (хотя из-за характера вопроса я не уверен, как легко это будет).
Во-первых, у меня работает мой первый проект кода Rcpp! Это удивительно быстро, и делает именно то, что мне нужно было сделать! Спасибо всем, кто помог мне здесь, это было оценено.
Моя следующая задача - добавить это в пакет. Я использовал R пакетов Хэдли Уикхэма, чтобы собрать свой пакет, поэтому я использую roxygen2
и devtools::document()
для документации и общих проверок, следуя этой книге. Я обратился к главе о скомпилированном коде (http://r -pkgs.had.co.nz / src.html , для удобства) и реализовал эти шаги. В частности:
- Я запустил
devtools::use_rcpp()
, чтобы настроить пакет для использования Rcpp.
- Я добавил соответствующие строки в другую функцию в пакете.
- Я скопировал файл с моей функцией в новый каталог
src
.
Затем я попытался обновить документацию (devtools::document()
), и я получил следующую ошибку:
simulate_mean.cpp:2:44: fatal error: RcppArmadilloExtensions/sample.h: No such file or directory
#include <RcppArmadilloExtensions/sample.h>
^
Я искал стек-обмен для чего-то подобного и увидел старый пост, где одним из комментариев была потребность в // [[Rcpp::depends(RcppArmadillo)]]
вверху ( Rcpp R, эквивалентный из NumericVector ). Это не проблема для меня - эта строка находится в правильном месте, без лишних пробелов (еще одна проблема, которую я обнаружил в stackexchange).
Первые несколько строк файла выглядят так:
#include <RcppArmadilloExtensions/sample.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
(ничего плохого я не вижу, и он прекрасно компилируется вне пакета).
Мой файл описания специально импортирует Rcpp
и RcppArmadillo
. Вот соответствующий раздел этого:
Imports:
dplyr(>= 0.7.4),
purrr (>= 0.2.4),
Rcpp (>= 0.12.17),
RcppArmadillo (>= 0.8.600.0.0)
Suggests: mvtnorm (>= 1.0-6),
testthat
Encoding: UTF-8
LazyData: true
RoxygenNote: 6.0.1
License: MIT + file LICENSE
LinkingTo: Rcpp
Я обновил R и все пакеты как часть моего устранения неполадок, так что все используют последнюю версию. (Я также попробовал версию github devtools
, с тем же результатом).
Любые мысли о том, почему расширение sample.h
не может быть найдено с помощью document()
?
Заранее спасибо!