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
。