我正在尝试编写一个简单的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的新手,所以我可能忽略了一些基本的知识。感谢您的帮助。
答案 0 :(得分:1)
行
decay[[2]] <- reactive
试图覆盖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)