R Shiny 应用程序中的延迟执行

2023-11-26

RShiny 应用程序的某些部分是否可能以延迟方式执行,就像 Windows 服务中的延迟启动一样?

让我详细说明一下。

我有一个带有选项卡的闪亮应用程序。每个选项卡的侧边栏面板上都有一堆单选按钮。单击每个单选按钮都会弹出一个报告。我的设置就是这么简单。

但是,当我每次加载应用程序并且自动渲染第一个选项卡时,都会执行与该选项卡下的所有单选按钮关联的所有报告,然后选择第一个单选按钮并显示其相关报告。整个过程大约需要 10-11 秒,我想把它记下来。

在服务器启动期间,我只需读取 global.R 中的 myData.RData 文件。因此,所有数据都是在服务器启动期间预取的(我假设保存在内存中)。当选项卡获得焦点时,会读取 myData.RData 中的 data.frames,并调用一系列 ggplot (renderPlot) 和表 (renderText)。

有没有办法可以在几秒钟内渲染第一个报告,然后继续执行其他 ggplots 和表格?我确实经历了反应导体和隔离,但无法弄清楚什么解决方案适合我的问题。

或者有什么其他方法可以加快加载(和刷新)时间?

一些代码可以帮助理解这个问题..

    # In server.R

    library(shiny)
    library(plyr)
    library(ggplot2)
    library(grid)

    source("a.R", local=TRUE)
    source("b.R", local=TRUE)

    shinyServer(function(input, output) {

      # The below two lines represent a report pair to me. So I have a Bar plot and the associated Table report.
      output$wSummaryPlot = renderPlot({ print(drawBarPlotA("Bar Plot A")) })
      output$wSummaryTable = renderText({ tableA() })

      # There are about 20 such pairs in server.R  

      # Please note that I am including other R file by "source". The first two lines shows that. Don't know if that is what is causing the problem.

      # The drawBarPlotA and tableA are functions defined in one of the source files which are included above. 
      # There are 5 such files which are included similarly.
    })

    # In ui.R
    shinyUI(pageWithSidebar(
        headerPanel(windowTitle = "Perfios - DAS", addHeader()),

        sidebarPanel(
            conditionalPanel(condition = "input.reportTabs == 1 && input.reportType == 'reportTypeA'",
                         wellPanel(radioButtons("showRadio", strong("Attributes:"),
                                                c("Analysis A" = "a", 
                                                  "Analysis B" = "b", 
                                                  "Analysis C" = "c", 
                                                  "Analysis D" = "d",
                                                  "Analysis E" = "e",
                                                  "Analysis F" = "f"
                                                  )))
        ))

        mainPanel(
            tabPanel("A", value = "1", 
                 conditionalPanel(condition = "input.reportType == 'reportTypeA'",
                                  conditionalPanel(condition = "showRadio == 'X'", 
                                                   plotOutput("wSummaryPlot"), h4("Summary:"), verbatimTextOutput("wSummaryTable"))


       # Many such element here to accomodate for those 20 reports... 
    )))
))

# In drawBarPlotA
drawBarPlotA = function(mainText) {
  ggplot(data, aes(variable, value, fill = some_fill)) + 
    geom_bar(stat = "identity", position = "dodge", color = "grey") +
    ylab("Y Label") + 
    xlab(NULL) + 
    theme_bw() + 
    ggtitle(mainText) + 
    scale_fill_brewer(palette = "Set1") +
    annotate("text", x = 1.2, y = 0, label = "Copyright...", size = 4) +
    theme(axis.text.x = element_text(angle = 45, hjust = 1, size = "12", face = "bold"), 
          axis.text.y = element_text(size = "12"),
          plot.title = element_text(size = "14", vjust = 3, face = "bold"))  
}

tableA = function() {
  # This is a data.frame which is returned
  data
}

shinyServer(function(input, output, session) {
  values <- reactiveValues(starting = TRUE)
  session$onFlushed(function() {
    values$starting <- FALSE
  })

  output$fast <- renderText({ "This happens right away" })
  output$slow <- renderText({
    if (values$starting)
      return(NULL)
    "This happens later"
  })
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R Shiny 应用程序中的延迟执行 的相关文章

  • 从 n,k 维矩阵数组中减去 n,k 维矩阵

    如果我有一个数组A A lt array 0 c 4 3 5 for i in 1 5 set seed i A i lt matrix rnorm 12 4 3 如果我有矩阵 B set seed 6 B lt matrix rnorm
  • R、Rcpp 与 Armadillo 中矩阵 rowSums() 与 colSums() 的效率

    背景 来自 R 编程 我正在扩展到 C C 形式的编译代码Rcpp 作为循环交换 以及一般的 C C 效果的实践练习 我实现了 R 的等效项rowSums and colSums 矩阵的函数Rcpp 我知道它们以 Rcpp 糖的形式存在 并
  • 将字符串列拆分为多个虚拟变量

    作为 R 中 data table 包的相对缺乏经验的用户 我一直在尝试将一个文本列处理为大量指示符列 虚拟变量 每列中的 1 表示特定的子字符串是在字符串列中找到 例如我想处理这个 ID String 1 a b 2 b c 3 c 进入
  • R - 计算 bin 中特定值的数量

    我有一个如下所示的数据框 df Value lt c 1 1 0 2 1 3 4 0 0 1 2 0 3 0 4 5 2 3 0 6 Sl lt c 1 20 df lt data frame Sl Value gt df Sl Value
  • 列出 R 数据文件的内容而不加载

    我有时用print load myDataFile RData 当我加载数据文件时列出它的内容 有没有办法列出内容而不加载数据文件中包含的对象 我认为如果不加载对象就无法做到这一点 解决方案可能是使用包装器将 R 对象保存到save 该函数
  • purrr::可能函数可能无法与map2_chr函数一起使用

    我怀疑这是 purrr 包中的错误 但想先在 StackOverflow 中检查我的逻辑 在我看来 possibly功能在内部不起作用map2 chr功能 我正在使用 purrr 版本 0 2 5 考虑这个例子 library dplyr
  • 使用officer R导出时如何提高ggplots的分辨率

    我想将图表导出到 PPT 并使用Officer 包来实现相同的目的 但是 图表的默认分辨率较低 我想更改它 我目前正在使用以下电话 ph with gg p1 type chart res 1200 其中 p1 是 ggplot 对象 运行
  • 需要在R中按行绑定列表数据

    我在 R 中按行绑定列表时遇到问题 我的列表数据集是 id 1 data k 1 id k b c 1 1 1 3 data k 2 id k b c 1 2 1 4 id 2 data k 1 id k b c 2 1 1 6 data
  • 如何在 R 中执行近似(模糊)名称匹配

    我有一个专门用于生物学期刊的大型数据集 该数据集是由不同的人长时间编写的 因此 数据不采用单一格式 例如 在 作者 栏中我可以找到John Smith Smith John Smith J等 但它们是同一个人 我连最简单的动作都做不了 例如
  • 多个动态滤镜更新闪亮

    我希望能够让 UI 输入闪亮 并根据用户之前的选择进行自我更新 因此 在下面的示例中 预期的行为是用户选择cyl vsor carb那么这将 过滤数据集mtcars用于创建绘图 即用户根据过滤条件调整绘图并 更新其他过滤器中的剩余输入选择
  • 为什么 sapply 的缩放速度比样本大小的 for 循环慢?

    假设我想采用向量 X 2 1 N 并将 e 计算为每个元 素的指数 是的 我认识到最好的方法就是通过向量化 exp X 但这样做的目的是将 for 循环与 sapply 进行比较 我通过逐步尝试三种方法 一种使用 for 循环 两种以不同方
  • 我可以使用哪个 R 函数来查找两条线的交点?

    我刚刚研究了 stackoverflow 上所有的 在 R 中寻找交集 问题 它们要么是关于曲线 要么是关于分布像这个 https stackoverflow com questions 20519431 finding point of
  • `as.matrix` 和 `as.data.frame` S3 方法与 S4 方法

    我注意到定义as matrix or as data frame作为 S4 类的 S3 方法 使例如lm formula objS4 and prcomp object 开箱即用 如果它们被定义为 S4 方法 则这不起作用 为什么将方法定义
  • 在 R 的 for 循环中创建动态命名对象并分配动态值

    我正在尝试创建一套动态命名的新对象 例如 temp2015 使用 for 循环 并存储动态值 具体来说 其他对象的名称 例如 Y2015 和 for 循环中使用的值 例如 2015 在动态命名的新对象中 我不确定为什么下面的代码不起作用 Y
  • 闪亮的应用程序包:css 和所有 www/ 目录内容

    我正在尝试将 Shiny 应用程序转换为 R 包 但我在处理有关 www 目录以及 松散 文件的所有问题时遇到了问题 我闪亮的应用程序运行得很好 但是当我尝试 打包它 时 它不起作用 我闪亮的应用程序目录 my shiny app R ut
  • 如何按定义的顺序将图像合并到一个文件中

    我有大约 100 张图像 png 我不想手动执行此操作 而是希望将它们按照定义的顺序 基于文件名 并排放置在一个 pdf 中 每行 12 个图像 有人有什么建议吗 我按照下面托马斯告诉我的方法尝试了 它把它们贴在旁边有一个黑边 我怎样才能去
  • 使用选定因子水平的值向 ggplot-barchart 添加水平线

    在这个情节中 df lt data frame factor as factor c rep A 3 rep B 3 Treatment c rep c A B C 2 values runif 6 0 1 ggplot df aes Tr
  • R中IF函数的使用

    我正在短跑ifR 中的函数 但收到以下警告消息 In if runif 50 0 1 lt 0 69 the condition has length gt 1 and only the first element will be used
  • 如何为自定义 S3 类实现提取/取子集 ([ [<-, [[ [[<-)] 函数?

    我有一个自定义的 S3 类foo 它在正常的基础上添加了一些自定义行为data frame foo object lt data frame class foo object lt c foo data frame 对于这个类 还应该有一个
  • ggplot:如何限制条形图中的输出,以便仅显示最频繁出现的情况?

    我几个小时以来一直在寻找这个简单的东西 但没有结果 我有一个数据框 其中一列为变量 国家 地区 我想要两件事以下 绘制最常见的国家 地区 最常见的位于顶部 找到部分解决方案EDIT找到完整的解决方案 gt gt 重点问题是根据频率限制条形图

随机推荐

  • PyMySQL 和 OrderedDict

    我已经使用 PyMySQL 一段时间了 并创建了自己的包装器 我习惯于速记编写查询 尽管如此 我一直在使用 OrderedDict 创建 CSV 文件 因为我需要保持顺序相同 但我意识到 如果我使用 PyMySQL 查询数据库 我将无法获得
  • 将值推送到 Laravel 中现有的缓存值

    我想为现有缓存设置一个值 我有这样的事情 Cache put key foo bar expiresAt 现在我该如何推动 sad 值到这个键而不删除最后的值 在推送值并获取缓存后需要类似的东西 foo bar sad 请尝试以下操作 Ca
  • MySQL 中的基数是什么?

    MySQL 中的基数是什么 请用简单的 非技术性的语言进行解释 如果任何表的索引详细信息显示字段的基数group id为11 那么这意味着什么呢 最大基数 所有值都是唯一的 最小基数 所有值都相同 有些列被称为高基数列 因为它们有约束 例如
  • Python:覆盖 __new__ 中的 __init__ 参数

    我有一个 new 方法如下 class MyClass object def new cls args new args args sort prev args pop 0 while args next args pop 0 if pre
  • 在反应中下载文件

    我有一个使用 Laravel 创建的 Restful API 该 API 如下所示 http 127 0 0 1 8000 api file pdf id 这是我的下载代码 public function pdfDownload id pd
  • “日期”的默认值无效

    我想将日期设置为mysql中日期的默认值 不是时间戳 但出现以下错误 ALTER TABLE RMS transactionentry CHANGE Date Date DATE DEFAULT NOW NOT NULL Error Inv
  • 如何保持响应图像相同的高度?

    我正在制作一个网页 其中有一排并排有封面照片和个人资料图片 我将它们都放在不同大小网格的引导行中 但是 个人资料图片总是低于封面照片 它的高度更大 如何让它们保持响应 但高度相同 我的最终目标是让它们看起来像一条带 之间有填充 然后当窗口大
  • 每次运行硒测试时如何增加字段值?

    每次通过 Selenium IDE 运行 Selenium 测试时 是否有任何简单的方法可以将字段值增加 1 Command Type Target some kind of id Value number 1 EDIT 1 感谢克罗森沃尔
  • 通过 server.execute 传递参数?

    可以通过传递参数server execute 外汇 我在我的site asp我需要的 IF 场景functions asp a something id 123被执行 这可能吗 在 site asp 上 dim id id 123 if b
  • 命令“npm start”不执行任何操作

    进入后npm start在我的 Node 项目的目录中 我看到旋转的管道符号 表明 npm 正在加载 然而 该图形会无限期地显示 并且什么也不会发生 没有提供错误消息 我该如何解决或至少诊断这个问题 My 包 json如下 name Pro
  • HTML5 和 Amazon S3 分段上传

    是否可以使用 HTML 5 File API 例如 这个库 https github com 23 resumable js 与 S3 分段上传功能结合使用 http docs aws amazon com AmazonS3 latest
  • Django 头痛与简单的非 ASCII 字符串

    我刚刚创建了以下模型 class Categoria models Model nombre models CharField max length 30 padre models ForeignKey self blank True nu
  • 如何对数组进行降序排序?

    我有一个数组 a 0 9 6 12 1 我需要一种按降序排序的方法 a 12 9 6 1 0 为了按升序排序 我有一个 Ruby 函数a to a sort 我正在寻找一个函数来按降序对数组进行排序 如下所示 a 0 9 6 12 1 so
  • Windows 10 的应用内存限制是多少?

    Windows Phone 8 1 的应用程序内存限制可以在 MSDN 上轻松找到 但我似乎无法找到有关 Windows 10 尤其是 Windows 10 Mobile 上应用程序内存限制的明确信息 每个设备系列 Xbox 台式机 手机
  • Webview shouldOverrideUrlLoading 没有被调用

    我正在制作一个电子书阅读器 它使用 epub 格式将书籍加载到网络视图中 在某些书中 有指向同一章中某些部分的锚链接 每一章都以 html 形式加载 这就是链接的样子 file storage sdcard0 Android data co
  • 如何用 JSON 表示稀疏数组?

    我有一个稀疏数组 我想用 JSON 表示 例如 10 gt 100 1 gt 102 3 gt 44 12 gt 87 12345 gt 0 我怎样才能做到这一点 我可以这样做吗 您可以将其表示为一个简单的对象 10 100 1 102 3
  • 关联关系中的角色名称

    从 UML 圣经来看 大约role 角色 角色名称解释了对象如何参与关系 每个对象都需要保存对关联对象的引用 该引用保存在对象内的属性值中 当只有一个关联时 则只有一个属性持有引用 这句话是什么意思呢 谁能举个例子来解释一下吗 Roles
  • 如何在 Symfony5 中为学说配置 apcu

    在 Symfony4 中 我使用以下配置进行教义 apcu 缓存 doctrine orm auto mapping true auto generate proxy classes false metadata cache driver
  • C++ 将数字从零舍入

    你好 我想在 C 中像这样舍入双数 远离零 4 2 gt 5 5 7 gt 6 7 8 gt 8 34 2 gt 35 做到这一点的有效方法是什么 inline double myround double x return x lt 0 f
  • R Shiny 应用程序中的延迟执行

    RShiny 应用程序的某些部分是否可能以延迟方式执行 就像 Windows 服务中的延迟启动一样 让我详细说明一下 我有一个带有选项卡的闪亮应用程序 每个选项卡的侧边栏面板上都有一堆单选按钮 单击每个单选按钮都会弹出一个报告 我的设置就是