R闪亮脚本中服务器中的process_map()函数创建图表图像,如下所示。我的要求是有两个属性" FUN"和"单位"这是performance()函数的一部分。它们具有标准的四个值,每个值在PickerInput ID的Case4和Case5下面的ui代码中可用。目前,我很难编写创建地图的值,你能帮助我在服务器代码中使用id并使其动态化,这样当我在PickerInput中选择值时,公式直接获取值。谢谢,请帮助。
System.Data.Metadata.Edm
答案 0 :(得分:1)
测试一下:
output$State <- renderDiagrammeR({
if(input$resources == "Throughput Time")
{
if(input$Case4=="mean"){
patients %>% process_map(performance(FUN = mean,units = input$Case5))}
else if(input$case4=="min"){
patients %>% process_map(performance(FUN = min,units = input$Case5))
}else if(input$case4=="max"){
patients %>% process_map(performance(FUN = max ,units = input$Case5))
}else{
patients %>% process_map(performance(FUN = median ,units = input$Case5))
}
}else
return()
})
或者你可以使用它:
patients %>%
process_map(performance(FUN = eval(parse(text=input$Case4)) ,units = input$Case5))
享受;)
这是一个示例:
library(shiny)
ui <- fluidPage(
selectInput(inputId = "func", label = "Choose The Function", choices = c("mean", "sum", "median"))
,
textOutput("text")
)
server <- function(input, output, session) {
main_data <- reactive({
data.frame(a= rnorm(100), b=rnorm(100) )
})
output$text <- renderText({
df <- main_data()
apply(df,2, FUN = eval(parse(text=input$func)) )
})
}
shinyApp(ui = ui, server = server)
答案 1 :(得分:0)
您可以使用do.call
从名称中调用函数,请参阅下面的示例。您可以通过在do.call
函数的列表中添加参数来添加参数,例如list(x,units=input$Case5)
。
library(shiny)
x=c(1,2,3,4,5,6,7)
ui <- fluidPage(
selectInput('select','Select Function: ', choices=c('mean','max','min','median')),
textOutput('text')
)
server <- function(input,output)
{
output$text <- renderText({
result = do.call(input$select, list(x))
paste0('The ', input$select, ' of [', paste(x,collapse=', '),'] is ', result)
})
}
shinyApp(ui,server)
希望这有帮助!