我正在尝试构建一个函数,其中我必须在两个字符串之间使用逗号分隔符作为公式传递(brmsformula需要此格式来指定西格玛),但我收到错误,因为
formula
不允许,
里面:
library(brms)
term1 <- "mpg ~ 0 + Intercept + cyl"
term2 <- "sigma ~ 0 + cyl"
formula0 <- brms::brmsformula(paste( term1, term2, sep = ', ' ))
Error in str2lang(x) : <text>:1:26: unexpected ',' 1: mpg ~ 0 +
Intercept + cyl,
^
我知道我可以简单地从终端将其传递为:
> brms::brmsformula( mpg ~ 0 + Intercept + cyl, sigma ~ 0 + cyl )
mpg ~ 0 + Intercept + cyl
sigma ~ 0 + cyl
但我需要在一个可以有(或没有)西格玛规范的函数内创建它,从而粘贴这两个术语(如果指定了西格玛)。
正如 Friede 聪明地建议的那样,看起来解决方案只是将多个参数传递给公式:
> formula0 <- brms::brmsformula( term1, term2 )
mpg ~ 0 + Intercept + cyl
sigma ~ 0 + cyl