2017-11-10 8 views
0

사용자가 그룹별로 2 개의 입력을 선택하고 반짝이는 앱에서 합계를 입력하도록 허용하려고합니다. 이 입력은 요약 테이블을 더 작성하는 데 사용됩니다. 다음은

내가 group_by_ 기능의 도움으로 입력 $ 그룹를 사용 할 수있었습니다 코드 이제

library(shiny) 
    library(dplyr) 
    library(DT) 


    df <- iris 
    vchoices <- colnames(iris) 
    ui <- fluidPage(h1("PLOT FOR NOW"), 
        sidebarLayout(sidebarPanel(
         fluidPage(
         column(10,selectInput(inputId = "group",label = "Group BY",choices = vchoices)), 
         column(10,selectInput(inputId = "sum",label = "SUM",choices = vchoices,selected = "Sepal.Length")) 
        ) 

        ), 
        mainPanel(tabsetPanel(tabPanel("table",dataTableOutput("table")) 
        ))) 
    ) 

    server <- function(input,output,session){ 
     df1 <- reactive({df %>% group_by_(input$group) %>% summarise(fb =sum(input$sum))}) 

     output$table <- DT::renderDataTable(df1()) 



    } 

    shinyApp(ui,server) 

하지만 난이 요약에 대한 합계 어떻게 사용합니까?

+0

'get (input $ sum)'을 사용하여 입력 값을 가져옵니다. – SBista

답변

1

의견에서 언급했듯이 get()을 입력하여 값을 가져와야합니다.

server <- function(input,output,session){ 
    df1 <- reactive({ 
    df %>% group_by_(input$group) %>% summarise(fb =sum(get(input$sum)))}) 

    output$table <- DT::renderDataTable(df1()) 

    } 

는 희망이 도움이 :

또한 다음 작업을해야 수정 된 서버 기능입니다 group_by_(input$group)

대신 group_by(get(input$group)) 함께 사용할 수 있습니다!

+0

빠른 답장을 보내 주셔서 감사합니다! 다른 get을 사용할 수있는 방법에 대한 의문점이 있습니다 문자를 "input $ operator"에서 "mean"이라고 말하면'get (input $ operator) (get $ input))'? – Digvijay

+0

네, 맞습니다. input으로''mean "'이 있으면'get (input $ operator) '를 사용하여'mean' 함수를 얻을 수 있습니다. – SBista