【问题标题】:Shiny R: Use input from radio button as argument in by()Shiny R:使用来自单选按钮的输入作为 by() 中的参数
【发布时间】:2018-05-08 17:12:18
【问题描述】:

我有一个简单的单选按钮,允许用户选择“区域”或“房间大小”。我希望将输入传递给 by() 的 INDICES 参数,以便我可以为数据帧的每个因子级别运行一个函数并将结果呈现在一个表中。

我尝试过的几件事是:

 df <- Heating
 output$allmodelsbychar <- renderTable({    
    var <- input$runallmodels

    betas <- by(df, df$var, function(df){as.data.frame(summary(mlogit(depvar ~ ic + oc | 0, data= df, shape = "wide", choice = "depvar", varying = c(3:12)))$CoefTable)}, simplify = T)
    betas <- do.call("rbind", betas)
    betas
  })   
}

还有:

 df <- Heating
 output$allmodelsbychar <- renderTable({    

    betas <- by(df, df[ ,input$runallmodels], function(df){as.data.frame(summary(mlogit(depvar ~ ic + oc | 0, data= df, shape = "wide", choice = "depvar", varying = c(3:12)))$CoefTable)}, simplify = T)
    betas <- do.call("rbind", betas)
    betas
  })   
}

还有:

df <- Heating
 output$allmodelsbychar <- renderTable({

dfindecies <- reactive({
  if (input$runallmodels == "regiontype") {
    df <- df[, 15]
  }

  if (input$runallmodels == "roomsize") {
    df <- df[, 16]
    return(df)
  }
})

betas <- by(df, dfindecies(), function(df){as.data.frame(summary(mlogit(depvar ~ ic + oc | 0, data= df, shape = "wide", choice = "depvar", varying = c(3:12)))$CoefTable)}, simplify = T)
betas <- do.call("rbind", betas)
betas

【问题讨论】:

    标签: r filter shiny radio-button


    【解决方案1】:

    我使用if eles解决了这个问题

    server <- function(input, output) {
    
      df <- Heating
    output$allmodelsbychar <- renderTable({
    
    dfindecies <- reactive({
      if (input$runallmodels == "regiontype") {
        df <- df[, 16]
      } else {
        df <- df[, 15]
        return(df)
      }
    })
    
    ### Do stuff
    
      }) 
    
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-24
      • 2021-04-04
      • 1970-01-01
      • 2015-11-26
      • 2013-01-20
      • 2018-03-14
      • 2022-10-14
      • 2019-02-15
      相关资源
      最近更新 更多