2017-11-10 21 views
0

私は、2つの入力を1つずつグループ化し、合計を光沢のあるアプリケーションで選択できるようにしようとしています。これらの入力は、サマリー・テーブルをさらに作成するために使用されます。以下は

は私が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を使用できるか疑問に思う 「入力$演算子」から「平均($ operator)」で「平均(mean) )) '? – Digvijay

+0

はい、そうです。入力として '' mean "'がある場合、 'get(input $ operator)'を使って関数 'mean'を得ることができます。 – SBista

関連する問題