【发布时间】:2019-04-02 18:33:50
【问题描述】:
对 R 很陌生,我正在努力寻找这个问题的答案,但也许我不知道如何表达这个问题,如果之前有人问过这个问题,很抱歉。
我想在 for 循环中将函数/模型列表拟合到数据中,而不是手动执行每个。为此,我需要在 alist 中指定模型,列出以下内容:
flist <- alist(y ~ dnorm(mu, sigma),
mu <- a + b*x, # need to replace this line with general function
a ~ dnorm(0, 100),
b ~ dnorm(0, 10),
sigma ~ dunif(0, 10)
)
要在 for 循环中执行此操作,我需要能够将 a + b*x 替换为在运行时选择的某个函数的主体。所以我正在考虑制作它:
flist <- alist(y ~ dnorm(mu, sigma),
mu <- body(function[i]),
a ~ dnorm(0, 100),
b ~ dnorm(0, 10),
sigma ~ dunif(0, 10)
)
然而,alist 似乎并没有真正评估body(function[i]),这似乎是alist 的一部分。有没有办法在运行时取出身体?
基本上,我所追求的是要评估 alist 中的部分表达式(body(...)),但不是全部(保持 ~/
parse 可以做到这一点吗?
【问题讨论】: