Shiny - попытка воспроизвести объект типа «замыкание» - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь написать простое приложение Shiny, которое отображает функцию экспоненциального затухания, где пользователь может вводить различные значения лямбда-выражения.Каждый вариант, который я пробовал, приводит к «Ошибка в rep (value, length.out = nrows): попытка реплицировать объект типа« замыкание »».Я пытался воспользоваться советом из этой ветки, но не смог решить мою проблему.

library(shiny)
decay <- data.frame(days= seq(100, 0)) 

ui <- fluidPage( 
  sliderInput(inputId = "lambda",
              label = "Choose a number",
              value = 0.0, min = 0.0, max = 0.2),
  plotOutput("lplot")
)

server <- function(input, output){
  decay[[2]] <- reactive({
    exp(-input$lambda*decay[[1]])
  })
  output$lplot <- renderPlot({
    plot(decay())
  })

}

shinyApp(ui = ui, server = server)

Я новичок в Shiny, так что я могу пропуститьчто-то довольно простое.Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 22 февраля 2019

Строка

decay[[2]] <- reactive

пытается перезаписать 2-й элемент вашего data.frame decay.Вы, вероятно, не хотите этого делать.

Кроме того, я не уверен, что вы хотите от

decay[[1]]

Я подозреваю, что вы хотите использовать все days из decay data.frame?

В этом случае вы должны изменить свою структуру на что-то вроде

library(shiny)
decay <- data.frame(days= seq(100, 0)) 

ui <- fluidPage( 
  sliderInput(inputId = "lambda",
              label = "Choose a number",
              value = 0.0, min = 0.0, max = 0.2),
  plotOutput("lplot")
)

server <- function(input, output){

  r_decay <- reactive({
    exp(-input$lambda*decay$days)
  })
  output$lplot <- renderPlot({
    plot(r_decay())
  })

}

shinyApp(ui = ui, server = server)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...