R:将内部带有逗号的字符对象传递给公式

问题描述 投票:0回答:1

我正在尝试构建一个函数,其中我必须在两个字符串之间使用逗号分隔符作为公式传递(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

但我需要在一个可以有(或没有)西格玛规范的函数内创建它,从而粘贴这两个术语(如果指定了西格玛)。

我用谷歌搜索并查看了类似的帖子(如thisthis),但这些不适用于我的情况。有人知道如何实现这一目标吗?

r formula brms
1个回答
0
投票

正如 Friede 聪明地建议的那样,看起来解决方案只是将多个参数传递给公式:

> formula0 <- brms::brmsformula( term1, term2 )

mpg ~ 0 + Intercept + cyl 
sigma ~ 0 + cyl
© www.soinside.com 2019 - 2024. All rights reserved.