我想创建一组参数,用于R中的brms模型:
library(brms)
tmp <- prior(normal(10,2), nlpar = "x")
理想情况下,我希望从导入的矩阵中提取每个先验值(例如normal(10,2)
),例如:
priors <- cbind(c(10,20,30,40), c(2,4,6,8))
i <- 1
tmp <- prior(normal(priors[i,1], priors[i,2]), nlpar = "x")
然而,这会产生以下输出:
#b_x ~ normal(priors[i, 1], priors[i, 2])
而不是数值:
#b_x ~ normal(10, 2)
我意识到这可能是很基本的,但我想不出正确的方法.我试过:
prior(normal(as.numeric(priors[i,1]), as.numeric(priors[i,2])), nlpar = "x")
prior(normal(as.list(priors[i,1]), as.list(priors[i,2])), nlpar = "x")
prior(normal(paste(priors[i,1]), paste(priors[i,2])), nlpar = "x")
prior(normal(get(priors[i,1]), paste(get[i,2])), nlpar = "x")
有人能告诉我哪里出了问题吗?按位置[,]提取似乎适用于其他函数,例如lm(priors[,1]~priors[,2])
.