根据用户输入在 Shiny 中创建时间序列图

Create time-series graph in Shiny from user inputs

这里是初学者,非常感谢您在以下方面的任何帮助。

我希望创建一个简单的数据应用程序,它允许我:

如果这不可能,创建 logit 函数的方向是否合理?

我知道 3 个值不够,但我可以根据需要添加。

这是我的

ui.R

shinyUI(pageWithSidebar(   headerPanel("Time Series"),   sidebarPanel(
textInput(inputId="text1", label = "Input Text1"),
textInput(inputId="text2", label = "Input Text2"),
textInput(inputId="text2", label = "Input Text2"),
numericInput('Data', 'Time series',
             min = 0, max = 11)   ),   mainPanel(
plotOutput('plot1')   ) ))

server.R

    require(graphics) 
shinyServer(function(input, output, session) {
  # Combine the selected variables into a new data frame   
  selectedData <-         reactive({   ts <- reactive({
    ts(selectedData(), input$ts)   })
    output$plot1 <- renderText({as.numeric(input$text1), as.numeric(input$text2, as.numeric(input$text3})
      par(mar = c(6.1, 4.1, 0, 1))
      plot(selectedData(),
           col = ts()$ts,
           pch = 20, cex = 3))   })    })

我假设您要一次输入多个值,因此每个点的数字输入框会有点麻烦。我冒昧地制作了它,以便您可以复制并粘贴逗号分隔的数据:

(注意:value只是指定了默认值,只要你点击框就会清除。)

ui.R

shinyUI(
  pageWithSidebar(   
    headerPanel("Time Series"),   sidebarPanel(
    textInput("text", label = h6("Input comma delimited data"), value = "1.3, 2.9, 0.5, 2.1, 4.3")
    ),
    mainPanel(
      plotOutput('tsplot')   
    ) 
  )
)

server.R

require(graphics) 

shinyServer(function(input, output, session) {
 output$tsplot <- renderPlot({
   x <- as.numeric(strsplit(input$text, split = ",")[[1]])
   ts.obj <- ts(x)
   lowess.obj <- lowess(ts.obj, f = 10)
   plot.ts(x, main = "Sample Time Series", xlab = "Time")
   points(x)
   lines(lowess.obj$y, col = "red")
   legend("top", legend = "Loess Smoother", col = "red", lty = 1)
 })
})