【发布时间】:2021-01-25 22:21:29
【问题描述】:
我发现 rshiny 脚本非常难以调试。 特别是,rshiny 底部是 RunAPP。如果我得到错误。我没有从控制台看到任何提示。 请问大家是怎么调试rshiny的?
谢谢
【问题讨论】:
-
print("还没有断线,X线")
标签: r shiny shinydashboard shinyapps
我发现 rshiny 脚本非常难以调试。 特别是,rshiny 底部是 RunAPP。如果我得到错误。我没有从控制台看到任何提示。 请问大家是怎么调试rshiny的?
谢谢
【问题讨论】:
标签: r shiny shinydashboard shinyapps
最重要的是:始终牢记您需要测试和调试代码。不要仅仅为了满足需求而编写代码。将测试和调试视为需求本身。这种心态是遵循这些规则的良好起点:
browser() 添加到您的代码中,这会创建一个“强制”断点。print() 有助于将更多信息输出到控制台。【讨论】:
这是我如何在 Shiny 中调试的示例:
library(shiny)
ui <- fluidPage(
titlePanel("Old Faithful Geyser Data"),
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
mainPanel(
plotOutput("distPlot")
)
)
)
server <- function(input, output) {
x <- reactive({
faithful[, 2]
})
bins <- reactive({
seq(min(x()), max(x()), length.out = input$bins + 1)
})
observe(print(bins())) # THIS LINE WILL PRINT OUTPUT TO CONSOLE
output$distPlot <- renderPlot({
hist(x(), breaks = bins(), col = 'darkgray', border = 'white')
})
}
shinyApp(ui = ui, server = server)
observe(print(reactive_object_name())) 会将反应对象打印到控制台,这使您可以检查在应用程序中更改输入时反应对象发生的情况。
【讨论】: