首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rshiny在控制台中没有显示任何提示,那么如何调试Rshiny代码呢?

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

Stack Overflow用户
提问于 2021-01-26 06:21:29
回答 2查看 65关注 0票数 0

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

谢谢

EN

回答 2

Stack Overflow用户

发布于 2021-01-26 06:36:19

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

  1. R- console.
  2. Clearly提供了一些对调试非常有用的功能:一步一步地执行代码,跟踪函数调用,检查变量,以及在应用程序处于挂起状态时在控制台上运行自己的代码的机会。
  3. 如果断点不起作用(有时它们就是不起作用),请在代码中添加browser(),这将创建一个“强制的”breakpoint.
  4. Sometimes print(),从而帮助获得附加信息输出到console.
  5. Clearly,将业务逻辑与UI分开。使用单元测试(testthat)。如果出现错误,请编写一些示例代码来测试闪亮的应用程序外部的业务逻辑。
票数 2
EN

Stack Overflow用户

发布于 2021-01-26 11:05:34

下面是我如何在Shiny中调试的一个示例:

代码语言:javascript
复制
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()))会将一个反应对象打印到控制台,这允许你检查当你在应用程序中改变输入时反应对象发生了什么。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65893233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档