【发布时间】:2017-07-19 19:39:42
【问题描述】:
在 R Shiny 中,我想允许用户像下面的示例代码一样提供 invalidateLater() 的值,但它给出“警告:data.frame 中的错误:参数暗示不同的行数:0、1” .在下面的代码中,即使有错误信息,它也不会失败。但是,在我的实际代码中,它会导致失败。真正导致错误的原因是什么?
注意:如果我直接将 numericInput() 和 actionButton() 放在 ur.R 中,一切顺利。但是,我希望它们根据某些条件显示,因此我想使用 renderUI() 和 uiOutput()
ui.R
library(shiny)
shinyUI(fluidPage(
checkboxInput('refresh',em("Refresh"),FALSE),
uiOutput("interval_update"),
uiOutput("go_refresh"),
plotOutput("plot")
))
server.R
library(shiny)
shinyServer(function(input, output) {
output$interval_update=renderUI({
if(input$refresh==TRUE){
numericInput("alert_interval", em("Alert Interval (seconds):"),5 ,width="200px")
}
})
output$go_refresh=renderUI({
if(input$refresh==TRUE){
actionButton("goButton", em("Update"))
}
})
alert_interval = reactive({
input$goButton
z=isolate(input$alert_interval)
z=z*1000
z
})
output$plot <- renderPlot({
if(input$refresh==TRUE){
invalidateLater(alert_interval())
hist(rnorm(1000))
}
})
})
【问题讨论】: