R 如何在函数中使用输入$id值作为参数

R 如何在函数中使用输入$id值作为参数,r,shiny,dplyr,R,Shiny,Dplyr,我试图让用户在一个闪亮的应用程序中选择两个输入,一个用于分组,另一个用于求和。这些输入将用于进一步创建汇总表 下面是代码 library(shiny) library(dplyr) library(DT) df <- iris vchoices <- colnames(iris) ui <- fluidPage(h1("PLOT FOR NOW"), sidebarLayout(side

我试图让用户在一个闪亮的应用程序中选择两个输入,一个用于分组,另一个用于求和。这些输入将用于进一步创建汇总表

下面是代码

    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)
库(闪亮)
图书馆(dplyr)
图书馆(DT)

df如注释中所述,您应该使用
get()
获取输入中的值

您还可以将其与
groupby(get(input$group))
一起使用,而不是
groupby(input$group)

以下是修改后的服务器功能,该功能应能正常工作:

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

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

  } 
server%摘要(fb=sum(get(input$sum)))

输出$table使用
get(输入$sum)
获取输入中的值。感谢您的快速回复!我对如何使用get还有一个疑问,我是否可以使用它将字符“mean”从
input$operator
转换为
get(input$operator)(get(input$sum))
中的函数
mean
?是的,你是对的。如果输入的是
“mean”
,则可以使用
get(input$operator)
获取函数
mean