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

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

Файл:///tmp/RtmpMmXreV/file27067eb3452f_StanProgress.html

который содержит этот вывод:

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

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

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

Минимальный пример:

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 ответ

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

sampling(model, open_progress = FALSE)

Другие вопросы по тегам