如何在 R studio(闪亮的 App)中的 max() 函数中传递输入?
Posted
技术标签:
【中文标题】如何在 R studio(闪亮的 App)中的 max() 函数中传递输入?【英文标题】:How to pass an Input inside a max() function in R studio (shiny App)? 【发布时间】:2022-01-21 07:00:46 【问题描述】:我正在尝试将输入 input$sel
传递给 max() 函数
max(dataf$get(input$sel))
已知dataf
是具有值的数据框。
我的目标是通过选择输入 input$sel
从dataf
的列中获取最大值。
server <- function(input, output, session)
#Summarize Data and then Plot
data <- reactive(
req(input$sel)
df <- dataf %>%
group_by(code) %>%
summarise(output = get(input$sel))
print(df)
)
#Plot
output$plot <- renderPlot(
g <- ggplot(data(), aes(y = output, x = code) )
g + geom_bar( stat = "sum")
)
ui <- basicPage(
selectInput(inputId = "sel",
label = "eine möglichkeit auswählen",
list("vaccinationsTotal","peopleFirstTotal","peopleFullTotal","peopleBoosterTotal")),
plotOutput("plot")
###### here is my approuch ##########
max(dataf$get(input$sel))
)
【问题讨论】:
【参考方案1】:输入值仅在应用服务器内部可用。更准确地说,它们需要由观察/反应提供的反应上下文。
试试这个:
注意:我使用iris
数据集作为虚拟数据以使代码可重现。
library(shiny)
library(tidyverse)
ui <- basicPage(
selectInput(
inputId = "sel",
label = "eine möglichkeit auswählen",
choices = names(iris)
),
# list("vaccinationsTotal","peopleFirstTotal","peopleFullTotal","peopleBoosterTotal")),
plotOutput("plot")
)
server <- function(input, output, session)
# Summarize Data and then Plot
data <- reactive(
req(input$sel)
df <- iris %>%
group_by(Species) %>%
summarise(output = max(get(input$sel)))
print(df)
df
)
# Plot
output$plot <- renderPlot(
g <- ggplot(data(), aes(y = output, x = Species))
g + geom_bar(stat = "sum")
)
shinyApp(ui, server)
【讨论】:
感谢您的有用回答。现在我正在尝试使用 textOutput(),我想知道在这种特定情况下应该如何使用它。 @lawkira 您可以查看textOutput
documentation,如果您仍然需要帮助,您可以提出其他问题,我很乐意回答。以上是关于如何在 R studio(闪亮的 App)中的 max() 函数中传递输入?的主要内容,如果未能解决你的问题,请参考以下文章
我可以从闪亮的网站下载我闪亮的应用程序的 app.R 脚本和数据吗?