小编yif*_*yan的帖子

如何在R Shiny中使操作不间断

在我闪亮的应用程序中,我有一个输出,该输出应不断更新。但是,每当我执行长时间运行的计算时,输出就会暂停。我的问题是:如何使输出连续不断地运行?

请查看下面的简短演示:时钟每隔一秒刷新一次,但是如果我单击运行5秒钟的按钮,时钟将暂停。

library(shiny)

ui <- fluidPage(
    actionButton("button","Expensive calcualtion(takes 5 seconds)"),
    tags$p("Current Time:"),
    textOutput("time"),
    tags$p("Result from clicking button:"),
    textOutput("result")
)

server <- function(input, output, session) {
    output$time <- renderText({
        invalidateLater(1000)
        as.character(Sys.time())
    })

    observeEvent(input$button,{
        Sys.sleep(5)
        output$result <- renderText(runif(1))
  })
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

我试图使用future并promises让长时间运行的进程异步运行,但是它不起作用。哪里错了?有没有更好的方法可以达到这个目的?

library(shiny)
library(future)
library(promises)
plan("multisession")

ui <- fluidPage(
    actionButton("button","Expensive calcualtion(takes 5 seconds)"),
    tags$p("Current Time:"),
    textOutput("time"),
    tags$p("Result from clicking button:"),
    textOutput("result")
)

server <- function(input, output, session) {
    output$time <- renderText({
        invalidateLater(1000)
        as.character(Sys.time())
    })

    process <- eventReactive(input$button,{ …
Run Code Online (Sandbox Code Playgroud)

r shiny

8
推荐指数
1
解决办法
125
查看次数

未提供错误行号时如何调试?

我正在使用shiny并shinydashboard创建一个仪表板。最少的示例代码如下:

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
    dashboardHeader(title = "test"),
    dashboardSidebar(
        sidebarMenu(
            menuItem(text = "Tab One",tabName = "tab1"),
            menuItem(text = "Tab Two",tabName = "tab2"),
            id = "sidebar"), # an extra comma here!
    ),
    dashboardBody()
)


server <- function(input,output){}


shinyApp(ui,server)
Run Code Online (Sandbox Code Playgroud)

当我运行此应用程序时,出现错误消息:

Error in tag("section", list(...)) : argument is missing, with no default
Run Code Online (Sandbox Code Playgroud)

我知道出现此错误是因为在第10行的末尾有一个逗号。但是问题是:

我的应用程序中出现类似的错误,但是该应用程序包含20多个相互采购的R文件以及2000多个代码行。对我来说,遍历每个文件并尝试找出我放在多余逗号的位置是不可能的。

我的问题是:

有没有更简单的方法让R用行号和文件源打印错误消息?还是有一种更好的方法来调试这种错误(没有提供详细信息)?谢谢!


理想情况下,我希望错误消息类似于以下内容:

Error in source: <folder>/<file.R> 9:10: argument is missing, with no default
9:      menuItem(text = "Tab Two",tabName = "tab2"),
10:     id = …
Run Code Online (Sandbox Code Playgroud)

r shiny shinydashboard shinyapps

5
推荐指数
1
解决办法
141
查看次数

如何在 R 中为 S4 对象创建自定义打印方法

我创建了一个自定义类和打印方法:

#custom class
myClass <- setClass(Class = "myClass",
                    slots = c(a = "character"),
                    prototype = list(a = character()))
#custom print method
print.myClass <- function(theObject){
    print("2")
}
#create a variable for testing
test <- myClass(a = "1")
Run Code Online (Sandbox Code Playgroud)

如果我使用它,效果很好print(test):

> print(test)
[1] "2"
Run Code Online (Sandbox Code Playgroud)

但如果我只是运行变量本身而不使用print(),它的显示会有所不同。

> test
An object of class "myClass"
Slot "a":
[1] "1"
Run Code Online (Sandbox Code Playgroud)

当我在不使用 的情况下运行自定义打印方法时,我应该怎么做才能使其以相同的方式工作print()?

谢谢!

r r-s3 r-s4

4
推荐指数
1
解决办法
1480
查看次数

我对Convert.ToInt32()的工作方式感到困惑吗?

我今天晚上刚刚开始CodeCademy C#课程,并且有一个问题。我在转换数据类型部分中,并且能够“通过”练习,但是代码未输出预期的结果。当我运行程序时,它提示“您最喜欢的号码是多少?” 如果我输入5,它会达到预期效果,并输出“您喜欢的数字是5”。我不明白的是,如果我输入five,程序将抛出一个incorrect format error。我以为Convert.ToInt32()方法应该接收字符串输入并将其转换为对应的整数?感谢您对我正在做的事情或错误想法的任何帮助。

static void Main(string[] args) {

   // Ask user for fave number
   Console.Write("Enter your favorite number?: ");

   // Turn that answer into an integer

  int faveNumber = Convert.ToInt32(Console.ReadLine());
  Console.WriteLine("your favorite number is:" + faveNumber);

}
Run Code Online (Sandbox Code Playgroud)

c#

-1
推荐指数
1
解决办法
72
查看次数

标签 统计

r ×3

shiny ×2

c# ×1

r-s3 ×1

r-s4 ×1

shinyapps ×1

shinydashboard ×1