You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shiny应用server端调用selectInput报object 'input'未找到如何解决

问题原因
  • fpp3 提供的 model() 函数与 X_13ARIMA_SEATS() 方法使用 tidyverse 体系的非标准评估逻辑,会在自身的执行环境内解析公式内的变量,不会主动读取 Shiny 服务端的 input 对象,因此直接在公式内写 input$decompselect 会抛出找不到 input 的错误。
  • input$decompselect 返回的是字符串格式的变量名,无法直接作为公式左侧的变量标识符使用,需要先转换为符号对象才能被公式正确识别。
修复后完整代码
library(shiny)
library(plotly)
library(regclass)
library(fpp3)

ui <- fluidPage(
  selectInput("decompselect", "Choose variable", names(aus_production)),
  plotOutput("decomp")
)

server <- function(input,output){
  output$decomp <- renderPlot({
    aus_production %>%
      model(x11 = X_13ARIMA_SEATS(!!sym(input$decompselect) ~ x11())) %>%
      components() %>% autoplot()
  })
}

shinyApp(ui=ui, server=server)
关键修改说明
  • 用 sym() 函数将字符串类型的变量名转换为 R 语言的符号对象,让公式可以识别这是一个变量而非普通字符串
  • 用 !!(注入运算符)将符号对象直接注入到公式的评估环境中,绕过 model() 函数的非标准评估限制,确保变量名能被正确解析。

内容的提问来源于stack exchange,提问作者An Bha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:36:06