【问题标题】:Shiny - attempt to replicate an object of type 'closure'闪亮 - 尝试复制“闭包”类型的对象
【发布时间】:2019-07-16 00:49:31
【问题描述】:

我正在尝试编写一个简单的 Shiny 应用程序,该应用程序绘制一个指数衰减函数,用户可以在其中输入不同的 lambda 值。我尝试过的每个变体都会导致“rep(value, length.out = nrows) 中的错误:尝试复制‘closure’类型的对象。”我已尝试从 this 线程中获取建议,但无法解决我的问题。

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 的新手,所以我可能会忽略一些非常基本的东西。感谢您的帮助。

【问题讨论】:

  • decay[[1]] 应该给予什么?

标签: r shiny


【解决方案1】:

线

decay[[2]] <- reactive

正在尝试覆盖 data.frame decay 的第二个元素。你可能不是故意的。

另外,我不确定你想要什么

decay[[1]]

我怀疑你想使用decaydata.frame 中的所有days

在这种情况下,您应该将结构更改为类似

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)

【讨论】:

  • 是的,就是这样。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-23
  • 2018-06-23
  • 2013-07-15
  • 2023-03-27
  • 1970-01-01
  • 2019-12-11
  • 2013-12-24
相关资源
最近更新 更多