【问题标题】:How to pass alias name to glm model formula in R如何将别名传递给R中的glm模型公式
【发布时间】:2019-08-08 10:33:56
【问题描述】:

我正在使用 R 中的 glmmLasso 函数构建广义线性混合模型。我通过硬编码变量的名称在函数的 rnd 参数中传递分类变量的名称,但是,当我存储任何其他变量中的变量并传递新的变量名,它会显示一个错误。

re_model <- glmmLasso(formula, rnd = list(Geography =~1),
                       lambda=10000, data = input_data)
var = "Geography"

我的数据包含一个变量 Geography,如果我硬编码和编写 geography 这工作得很好,但如果我在公式中使用别名 var,它会抛出一个错误,选择未定义的列。有人可以帮我解决这个问题吗?

【问题讨论】:

  • rnd = setNames(list(~1), var)

标签: r statistics glm


【解决方案1】:

Geography是列表元素的名称:

list(Geography =~1)
#$Geography
#~1

您可以使用setNames 以编程方式设置名称:

var <- "Geography"
setNames(list(~1), var)
#$Geography
#~1

【讨论】:

  • 或者使用library(rlang) ; list2(!! var := ~1)创建列表
  • 非常感谢。这行得通。我有一个额外的查询,例如,如果我需要编写 rnd=list(Geography =~1 + Visits),其中访问是另一个变量。我如何传递访问别名。例如,var= Geography,var1=visits,因此我的公式应该类似于 rnd=list(var =~1 + var1)。知道如何实现这一点。再次感谢您的帮助。
  • visits &lt;- "somevar"; reformulate(visits, intercept = TRUE)
  • 抱歉没能看清楚,能否详细说明一下?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2013-01-18
  • 2021-04-16
  • 2023-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多