Shiny R: использовать входные данные от переключателя в качестве аргумента в () - PullRequest
0 голосов
/ 08 мая 2018

У меня есть простая радиокнопка, которая позволяет пользователю выбрать «Регион» или «Размер комнаты». Мне бы хотелось, чтобы входные данные передавались в аргумент INDICES функции by (), чтобы я мог запустить функцию для каждого факторного уровня фрейма данных и отобразить результаты в таблице.

Я попробовал пару вещей:

 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

1 Ответ

0 голосов
/ 09 мая 2018

Я решил проблему с помощью 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

  }) 



}
...