我在neovim和nvim-r中使用R来通过\kp
或sampling()
命令编织Rmd文档。问题是当我编织适合Rstan模型的Rmd时,它将在以下位置的单独的临时文件中打印Rstan options(mc.cores = parallel::detectCores())
调用的输出,包括链的进度:
包含以下输出的file:///tmp/RtmpMmXreV/file27067eb3452f_StanProgress.html
:
单击“刷新”按钮以查看链的进度 在localhost:11515在14:31:54.447上启动worker pid = 17045 在14:31:54.670在localhost:11515上启动worker pid = 17070
,它将在我的浏览器中打开该html文件。结果是每当新模型开始采样时,我的浏览器就会一直打开。这仅在我使用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))
并行化链时发生。没有该命令,HTML文件不会弹出。
是否可以防止nvim-r打开这些临时的html文件,或者可以使Rstan的链输出静音?
最小示例:
results="hide"
编辑:
我尝试将refresh = 0
添加到块头,并将sampling()
添加到基于this answer的refresh = 0
调用中,无济于事。 starting worker...
确实成功删除了消息的Click the Refresh button to see progress of the chains
部分,但仍然打开了一个显示 import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faPen, faSave } from '@fortawesome/free-solid-svg-icons';
import styles from "./EditBox.module.scss";
import classNames from 'classnames/bind';
let cx = classNames.bind(styles);
class EditBox extends Component {
constructor(props) {
super(props);
this.state = {
isEditForm: false
};
}
setEditing = (value) => {
if (value && this.props.initForm) {
this.props.initForm();
}
this.setState({ isEditForm: value });
}
render() {
return <div className={cx('editbox', this.state.isEditForm && 'editing')}>
<h4>{this.props.title}</h4>
{!this.state.isEditForm && <button className={cx('edit-button')} onClick={() => this.setEditing(true)}><FontAwesomeIcon size='lg' icon={faPen} /></button>}
{this.state.isEditForm ?
this.props.form((isSubmitting) => <div className={cx('buttons')}>
<button className={cx('submit')} type="submit" disabled={isSubmitting}>Bewaren <FontAwesomeIcon icon={faSave} style={{ marginLeft: '10px' }}/></button>
<button className={cx('cancel')} onClick={() => { this.setState({ isEditForm: false }) }}>Annuleren</button>
</div>, this.setEditing)
:
this.props.panel(this.setEditing)
}
</div>
}
}
export default EditBox;
的html文件。
答案 0 :(得分:2)
将open_progress = FALSE
添加到sampling()
可以防止stan将链的进度保存到日志文件中。默认值open_progress = TRUE
仅在cores > 1
时生效。来自rstan reference。示例:
sampling(model, open_progress = FALSE)