【问题标题】:update formula to add functions of covariates更新公式以添加协变量函数
【发布时间】:2022-11-28 18:06:51
【问题描述】:

假设我们有一个公式

f1 <- y ~ x1

并且我们需要使用将作为参数x2 的函数向其添加协变量sin(2*pi*x2)

当然,这有效:update(f1, . ~ . + sin(2 * pi * x2) 但我需要一个像这样的功能

updf <- function(formula, x){
    formula <- update(formula, paste("~ . +", sin(2 * pi * x)))
    formula}

调用updf(f1,"x2") 将返回:y ~ x1 + sin(2 * pi * x2)。此调用返回“2 * pi * x 中的错误:二元运算符的非数字参数”。

如何解决这个问题?

【问题讨论】:

  • 如果“x”是一个带有变量名称的字符串:formula &lt;- update(formula, paste("~ . + sin(2 * pi * ", x, ")")) 应该可以解决问题。
  • @Oliver 是的,它确实可以解决问题。谢谢你。

标签: r formula


【解决方案1】:

如果 x 是一个带有变量名称的字符串,那么 formula &lt;- update(formula, paste("~ . + sin(2 * pi * ", x, ")")) 应该可以工作。

f1 <- y ~ x1

updf <- function(formula, x){
  formula <- update(formula, paste("~ . + sin(2 * pi * ", x, ")"))
  formula
}  

updf(f1, "x2")
#> y ~ x1 + sin(2 * pi * x2)

这个答案来自@Oliver 的评论,并在一个多月后发布。我不想窃取信用,我只是希望这个问题在实际回答时不再显示为“未回答”。

【讨论】:

    猜你喜欢
    • 2020-07-08
    • 2021-07-18
    • 2019-06-01
    • 2019-07-23
    • 2020-07-27
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多