Как предотвратить открытие / tmp файлов с помощью knitr, используя nvim-r и rstan - PullRequest
0 голосов
/ 25 января 2019

Я использую R в neovim с nvim-r для вязки документов Rmd с помощью команд \kh или \kp.Проблема заключается в том, что когда я связываю Rmd, который соответствует модели Rstan, он печатает выходные данные вызова Rstan sampling(), включая ход цепочек, в отдельном временном файле в этом месте:

file: ///tmp/RtmpMmXreV/file27067eb3452f_StanProgress.html

, который содержит эти выходные данные:

Нажмите кнопку Обновить, чтобы увидеть ход цепочек, начинающих рабочий pid = 17045на локальном хосте: 11515 в 14: 31: 54.447 начальный рабочий pid = 17070 на локальном хосте: 11515 в 14: 31: 54.670

, и он открывает этот HTML-файл в моем браузере.В результате мой браузер продолжает открываться каждый раз, когда новая модель начинает выборку.Это происходит только тогда, когда я распараллеливаю цепочки, используя options(mc.cores = parallel::detectCores()).Html-файлы не открываются без этой команды.

Можно ли запретить nvim-r открывать эти временные html-файлы или можно отключить вывод цепочки из Rstan?

Minimalпример:

library(rstan)

options(mc.cores = parallel::detectCores())

data(DNase)

model <- stan_model(model_code = "
data {
    int n;
    vector[n] conc;
    vector[n] density;
}
parameters {
    real b0;
    real b1;
    real<lower=0> sigma;
}
model {
    conc ~ normal(b0 + b1 * (density), sigma);
    b0 ~ normal(0, 10);
    b1 ~ normal(0, 10);
    sigma ~ normal(0, 10);
}")

fit <- sampling(model, data = list(n = nrow(DNase),
                       conc = DNase$conc, 
                       density = DNase$density))

РЕДАКТИРОВАТЬ: я пытался добавить results="hide" к заголовку чанка и refresh = 0 к sampling() вызову на основе этого ответа безрезультатно.refresh = 0 действительно удаляет часть сообщения starting worker..., но все равно открывает html-файл с надписью Click the Refresh button to see progress of the chains.

1 Ответ

0 голосов
/ 25 января 2019

Добавление open_progress = FALSE к sampling() не позволяет stan сохранять ход цепочек в файл журнала.Значение по умолчанию open_progress = TRUE вступает в силу только при cores > 1.Из ссылки рстан .Пример:

sampling(model, open_progress = FALSE)

...