Rshiny没有在控制台中显示任何提示,那么如何调试Rshiny代码呢?

Rshiny没有在控制台中显示任何提示,那么如何调试Rshiny代码呢?,r,shiny,shinydashboard,shinyapps,R,Shiny,Shinydashboard,Shinyapps,我发现rshiny脚本非常难调试。 特别是,rshiny底部是RunAPP。如果我得到错误。我没有从控制台看到任何提示。 我能问一下你们是怎么调试rshiny的吗 最重要的是,请记住,您需要测试和调试代码。不要只编写代码来满足需求。考虑测试和调试本身就是一个要求。这种心态是遵循这些规则的良好起点: R-Studio提供了一些对调试非常有用的功能:逐步执行代码、跟踪函数调用、检查变量,以及在应用程序暂停时在控制台上运行自己的代码 如果断点不起作用(有时就是不起作用),请将browser()添加到代

我发现rshiny脚本非常难调试。 特别是,rshiny底部是RunAPP。如果我得到错误。我没有从控制台看到任何提示。 我能问一下你们是怎么调试rshiny的吗


最重要的是,请记住,您需要测试和调试代码。不要只编写代码来满足需求。考虑测试和调试本身就是一个要求。这种心态是遵循这些规则的良好起点:

  • R-Studio提供了一些对调试非常有用的功能:逐步执行代码、跟踪函数调用、检查变量,以及在应用程序暂停时在控制台上运行自己的代码
  • 如果断点不起作用(有时就是不起作用),请将
    browser()
    添加到代码中,这样会创建一个“强制”断点
  • 有时,
    print()
    有助于将其他信息输出到控制台
  • 清晰地将业务逻辑与UI分开。使用单元测试(testthat)。如果出现错误,请编写一些示例代码来测试Shining应用程序外部的业务逻辑

  • 最重要的是:始终记住,您需要测试和调试代码。不要只编写代码来满足需求。考虑测试和调试本身就是一个要求。这种心态是遵循这些规则的良好起点:

  • R-Studio提供了一些对调试非常有用的功能:逐步执行代码、跟踪函数调用、检查变量,以及在应用程序暂停时在控制台上运行自己的代码
  • 如果断点不起作用(有时就是不起作用),请将
    browser()
    添加到代码中,这样会创建一个“强制”断点
  • 有时,
    print()
    有助于将其他信息输出到控制台
  • 清晰地将业务逻辑与UI分开。使用单元测试(testthat)。如果出现错误,请编写一些示例代码来测试Shining应用程序外部的业务逻辑

  • 以下是我如何在Shining中调试的示例:

    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)
    
    库(闪亮)
    
    ui以下是我如何在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)
    
    库(闪亮)
    ui打印(“尚未中断,第X行”)打印(“尚未中断,第X行”)