代码之家  ›  专栏  ›  技术社区  ›  S.K.

gamm的R粘贴公式

  •  0
  • S.K.  · 技术社区  · 7 年前

    我试图通过编程创建gamm估计的公式,我想稍后在一个闪亮的应用程序中使用。我的目标是创建这样一个公式:y~s(x,bs=“cs”)。

    input<-list()
    input$x<-"mpg"
    input$y<- "hp"
    
     formula<-as.formula(paste(input$y_variable," ~ ",paste(paste("s(",paste(input$x_variable,collapse="+")),', bs="cs")')))
    
    z <- mgcv::gamm(formula, data=mtcars)
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   KenHBS    7 年前

    如果在一行中输入的多个命令开始扰乱您对代码的理解,那么将其分解通常是有意义的:

    dep_vars    <- paste0(input$x, collapse = "+")
    after_tilde <- paste0("s(", dep_vars, ", bs = 'cs')")
    dyn_string  <- paste0(input$y, " ~ ", after_tilde)
    
    mgcv::gamm(as.formula(dyn_string), data=mtcars)
    

    然而,事实证明,实际问题是您定义了 input$x input$y ,但您正在使用 input$x_variable input_y_variable

        2
  •  0
  •   Roland    7 年前

    input <- lapply(input, as.name)
    z <- eval(substitute(mgcv::gamm(y ~ s(x, bs = "cs"), data=mtcars), input))
    

    这个替代品 x y input 并计算表达式。

    推荐文章
    S.K.  ·  gamm的R粘贴公式
    7 年前