在我闪亮的应用程序中,我有一个输出,该输出应不断更新。但是,每当我执行长时间运行的计算时,输出就会暂停。我的问题是:如何使输出连续不断地运行?
请查看下面的简短演示:时钟每隔一秒刷新一次,但是如果我单击运行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) 我正在使用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) 我创建了一个自定义类和打印方法:
#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()?
谢谢!
我今天晚上刚刚开始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)