devtools :: проверка завершается с помощью cpp_object_initializer - PullRequest
0 голосов
/ 15 марта 2019

Я бегу devtools::test и все работает:

$ RScript -e "devtools::test()"
...
OK:       24

Но devtools::check не проходит тест:

$ RScript -e "devtools::check()"
...
> test_check("package")
Error in cpp_object_initializer(.self, .refClassDef, ...) : 
  could not find function "cpp_object_initializer"
Stan model 'bayes_logit' does not contain samples.
── 1. Error: Mixture of Dirichlet Processes stick-breaking works and returns (@t
'data' must be of a vector type, was 'NULL'
1: mdp_logit_mvn_stickbreaking(n_samp = n_samp, mix_mean = NULL, mix_cov = NULL, posterior_sample = stan_sample, 
       prior_sample_size = 1, dataset = german, tol = 1e-08) at testthat/test_stick_breaking.R:35
2: MASS::mvrnorm(n = n_samp, mu = mix_mean, Sigma = mix_cov)
3: eigen(Sigma, symmetric = TRUE)
4: unname(as.matrix(x))
5: as.matrix(x)
6: as.matrix.default(x)
7: array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x), NULL) else NULL)

Как я могу это исправить?

1 Ответ

0 голосов
/ 15 марта 2019

Это связано с разницей между загрузкой и креплением Я взял решение из этой проблемы GitHub .

Добавьте это в NAMESPACE, чтобы указать R, где найти cpp_object_initialiser:

Depends:
    Rcpp

Это работает, но дает вам заметку. Чтобы избежать примечания, добавьте экспорт Roxygen вокруг функции, которая использует вызов Rstan:

#' @importFrom Rcpp cpp_object_initializer
function_name <- function(...) {...}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...