2017-11-03 1 views
1

이 간단한 응용 프로그램을 올바르게 작동시키고 싶습니다. 사용자가 dplyr::starwars 데이터 세트에서 원하는 수의 변수를 선택하고 해당 변수의 고유 한 조합을 표시 할 수 있습니다.Shiny에서 dplyr로 입력을 선택하는 방법?

library(shiny) 
library(tidyverse) 

ui <- fluidPage(
    titlePanel("Use selectize with dplyr"), 
    selectizeInput("distinct_vars", "Select distinct", choices = names(starwars), multiple = T), 
    dataTableOutput("table") 
) 

server <- function(input, output) { 
    output$table <- renderDataTable({ 
     req(input$distinct_vars) 
     arg_list <- rlang::parse_quosures(paste(input$distinct_vars, collapse = ";")) 

     starwars %>% 
      distinct(!!arg_list) 
    }) 
} 

shinyApp(ui = ui, server = server) 

I 라인 distinct(!!arg_list)로 어려움을 겪고 있어요. distinct 함수의 인수를 목록으로 전달하고 싶습니다. 이 줄을 distinct(!!arg_list[[1]])으로 바꾸면 응용 프로그램이 올바르게 작동하지만 선택한 첫 번째 변수에 대해서만 작동합니다. 사용자가 원하는만큼의 변수를 선택하고 사용자의 선택을 dplyr 함수에 전달할 수있게하고 싶습니다. 여러 바르 들어

답변

3

, 우리는 !!! 대신에 너무 많은

+1

감사를 enter image description here

- 출력

ui <- fluidPage( titlePanel("Use selectize with dplyr"), selectizeInput("distinct_vars", "Select distinct", choices = names(starwars), multiple = T), dataTableOutput("table") ) server <- function(input, output) { output$table <- renderDataTable({ req(input$distinct_vars) arg_list <- rlang::parse_quosures(paste(input$distinct_vars, collapse = ";")) starwars %>% distinct(!!! arg_list) }) } shinyApp(ui = ui, server = server) 

!!의 필요! –

관련 문제