我需要创建几个具有modelr::formulas()个函数的公式,这些公式针对我拥有的每个组的一些独立变量进行区分.例如,我想为第1组和第2组生成

log(price) ~ year + 'var1_Group 1':var2
log(price) ~ year + 'var1_Group 1':var3

log(price) ~ year + 'var1_Group 2':var2
log(price) ~ year + 'var1_Group 2':var3

我try 了as.formula()个功能,但没有成功:

 map(c("Group 1", "Group 2"),
  
  .f = \(x) {
    
    formulas <- formulas(~ log(price),
                         reg1 = as.formula(~ year + str_c("`var1_", x, "`:var2")),
                         reg2 = as.formula(~ year + str_c("`var1_", x, "`:var3")))
    
  })

这回到了我:

[[1]]
[[1]]$reg1
log(price) ~ year + str_c("`var1_", x, "`:var2")
<environment: 0x0000027365340dc0>

[[1]]$reg2
log(price) ~ year + str_c("`var1_", x, "`:var3")
<environment: 0x0000027365340dc0>


[[2]]
[[2]]$reg1
log(price) ~ year + str_c("`var1_", x, "`:var2")
<environment: 0x000002730bac4590>

[[2]]$reg2
log(price) ~ year + str_c("`var1_", x, "`:var3")
<environment: 0x000002730bac4590>

提前感谢!

推荐答案

as.formula之前使用sprintfouter.

> f <- \(x, y) sprintf("log(price) ~ year + `var1_%s`:%s", x, y)
> outer(c('Group 1', 'Group 2'), c('var2', 'var3'), f) |> lapply(as.formula)
[[1]]
log(price) ~ year + `var1_Group 1`:var2
<environment: 0x61d285e1b4d8>

[[2]]
log(price) ~ year + `var1_Group 2`:var2
<environment: 0x61d285e1b4d8>

[[3]]
log(price) ~ year + `var1_Group 1`:var3
<environment: 0x61d285e1b4d8>

[[4]]
log(price) ~ year + `var1_Group 2`:var3
<environment: 0x61d285e1b4d8>

outer视为交叉积Map,类似于嵌套的for循环.

R相关问答推荐

从cv.glmnet R包中查找培训SSE

如何将Rmarkdown中包含图像和文本的行的两个单元格与.PDF输出垂直对齐?

棒棒糖图表大小和线宽参数故障标签未出现

R -模运算后的加法

在ComplexHeatmap中,如何更改anno_barplot()标题的Angular ?

从具有随机模式的字符串中提取值

R中的枢轴/转置

更新合适的R mgcv::bam模型报告无效类型(关闭).'';错误

根据收件箱中的特定值提取列名

格点中指数、双曲和反双曲模型曲线的正确绘制

在"gt"表中添加第二个"groupname_col",而不连接列值

用值序列对行进行子集化,并标识序列开始的列

bslib::card_header中的shine::downloadButton,图标而不是文本

如何在R中平滑地绘制线图(不拟合)?

KM估计的差异:SvyKm与带权重的调查

如何将一些单元格的内容随机 Select 到一个数据框中?

在R中,如何从一系列具有索引名的变量快速创建数据帧?

通过初始的shiny 应用更新部署的shiny 应用的数据和参数,其中部署的应用程序显示为URL

循环遍历多个变量,并将每个变量插入函数R

删除在R中的write.table()函数期间创建的附加行