knitr завершается неудачей на чанке Stan с кешем = TRUE - PullRequest
0 голосов
/ 07 декабря 2018

Согласно этой проблеме Github (помечена как исправленная для knitr v1.12), должна быть возможность кэшировать чанки Stan в knitr, чтобы объект модели Stan не нуждался в повторной компиляциикаждый раз, когда мы вяжем файл.

Однако, используя knitr v1.20 (R v3.5.1 в RStudio v1.1.463), при вязании файла во второй раз (так что кеш уже собран), Я получаю сообщение об ошибке:

Quitting from lines 9-18 (Testing_Stan_cache.Rmd) 
Error in fun(environment()) : invalid first argument
Calls: <Anonymous> ... call_block -> <Anonymous> -> lazyLoad -> lazyLoadDBexec -> fun
Execution halted

Пример файла Rmarkdown (в сообщении упоминаются строки 9-18, это блок Stan):

---
title: "Testing Stan cache"
output: html_document
---

## Stan model

```{stan output.var="ex1", cache=TRUE}
data {
  int<lower=0, upper=1> X[100];
}
parameters {
  real<lower=0, upper=1> p;
}
model {
  X ~ bernoulli(p);
}
```

## Run the model 

```{r}
library(rstan)
fit <- sampling(ex1, data=list(X = rbinom(100, 1, 0.3)))
print(fit)
```

Я также пробовал с cache.lazy=FALSE в параметрах блока Stan, но появляется другая ошибка:

Quitting from lines 23-26 (Testing_Stan_cache.Rmd) 
Error in sampling(ex1, data = list(X = rbinom(100, 1, 0.3))) : 
  object 'ex1' not found
Calls: <Anonymous> ... withCallingHandlers -> withVisible -> eval -> eval -> sampling
Execution halted

1 Ответ

0 голосов
/ 07 декабря 2018

Это ошибка knitr , которую я только что исправил на Github .Пожалуйста, попробуйте текущую версию разработки:

remotes::install_github('yihui/knitr')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...