You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中实现公式拼接的最标准方法是什么?

我想要在R中定义公式的不同组成部分,再将这些部分拼接起来——并非仅通过项的加和实现。我理想中的语法大致如下:

# 定义单侧公式
part_1 <- ~ x:w
part_2 <- ~ y + z

# 拼接,比如用类似glue的语法
f <- y ~ a + {part_1}:{part_2}

对我而言这是很自然的使用场景,因此想了解基础R中是否存在这类功能。部分包虽提供相关解决方案,但会附带额外限制。

我在基础R中的尝试均未成功:

# 无法正常运行:update会直接字面插入"part_2"
update(part_1, ~ . + part_2)
#> ~part_2 + x:w

# reformulate只能用+拼接项
reformulate(c(attr(terms(part_1), "term.labels"),
              attr(terms(part_2), "term.labels")))
#> ~x:w + y + z

目前已有一些公式合并方法,但仅支持加和操作,不支持其他运算符拼接。

目前我找到的唯一可行方案需要使用fixest的宏语法:

library(fixest)

setFixest_fml(..part_1 = ~ x:w)
setFixest_fml(..part_2 = ~ y + z)

f <- y ~ a + (..part_1):(..part_2)
xpd(f)
#> y ~ a + (x:w):(y + z)
attr(terms(xpd(f)), "term.labels")
#> [1] "a"     "y:x:w" "x:w:z"

于2021-11-18由reprex包(v2.0.1)创建

内容的提问来源于stack exchange,提问作者dufei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:45:02