R Shiny仅执行UI代码、Server未运行及参数报错修复咨询
解决Shiny应用selectInput报错问题
你遇到的报错核心原因是参数名拼写错误:Shiny的selectInput和sliderInput函数里,指定输入ID的参数是inputId(大写I+小写d),但你代码里写成了inputID(两个大写字母),这会导致R在解析UI代码时就抛出"unused argument"错误,自然没法继续执行后面的server部分。
另外还有两个小问题需要一并修正:
- 响应式数据对象
filteredData是函数,在ggplot里调用时要加括号:filteredData() - ggplot不支持
main参数,要换成ggtitle()来设置图表标题
以下是修正后的完整代码:
library(shiny) library(ggplot2) ui <- fluidPage( # ui控制页面布局 sidebarLayout( sidebarPanel( h2("Carbon Dioxide Uptake in Grass Plants"), selectInput(inputId = "treatment", label = "Treatment: ", choices = c("nonchilled", "chilled"), selected = "nonchilled" ), sliderInput(inputId = "slider", label = "Concentration limit:", min = 0, max = max(CO2$conc), value = 500, step = 100) ), mainPanel( plotOutput("scatterplot"), ) ) ) server <- function(input, output){ # server定义应用运行逻辑 filteredData <- reactive({ subset(CO2, Treatment == input$treatment) }) output$scatterplot <- renderPlot({ ggplot(filteredData(), aes(x = conc, y = uptake)) + geom_point(alpha=0.5) + ggtitle("Scatter Plot") + xlim(0, input$slider) }) } shinyApp(ui = ui, server = server)
内容的提问来源于stack exchange,提问作者Lynny
相关产品推荐
相关产品推荐

