如何删除闪亮的renderUI中的输入?

2024-02-11

在我闪亮的应用程序中,我有一个使用 renderUI 的动态输入。

这工作得很好,程序的另一部分捕获滑块的输入。

当应用程序状态发生变化时(例如,当按下“更新模型”按钮时),我仍然需要显示/使用具有类似标签的滑块,但由于它们是“新的”,因此需要将值重新初始化为零。

问题是滑块有记忆。如果我重复使用相同的 inputId

  paste0(Labv[i], "_v",buttn)

闪亮的将具有与其关联的旧值。

目前我的代码正在使用变量buttn绕过这个问题:每次状态改变时我都会创建“新”滑块。

另一方面,用户使用该应用程序的次数越多,就会有越多的垃圾被收集到shiny中。

我尝试使用 renderUI 将元素列表发送为 NULL,尝试发送元素列表

updateTextInput(session, paste0(lbs[i],"_v",buttn),
            label = NULL,  value = NULL )

or tags$div("foo", NULL)但在每种情况下,实际变量都呈现为文本,这是最糟糕的!

# Added simplified example
library(shiny)
library(data.table)

#
dt_ = data.table( Month = month.abb[1:5],
A=rnorm(5, mean = 5, sd = 4),
B=rnorm(5, mean = 5, sd = 4),
C=rnorm(5, mean = 5, sd = 4),
D=rnorm(5, mean = 5, sd = 4),
E=rnorm(5, mean = 5, sd = 4))

dt_[,id :=.I]
dt <- copy(dt_)
setkey(dt_, "Month") 
setkey(dt, "Month")

shinyApp(
  ui = fluidPage(
fluidRow(
  column(4, 
    actionButton("saveButton", "Update Model"))),
fluidRow(
  column(6, dataTableOutput('DT')),
  column(3, br(),br(),checkboxGroupInput("pick",h6("Picker"), 
    month.abb[1:5])),  
  column(3, uiOutput('foo'))),
fluidRow(
  column(4, verbatimTextOutput('vals')))    
  ),

  server = function(session,input, output) {
    valPpu <- reactiveValues()

    valPpu$buttonF <- 1
    valPpu$dt_ <- dt_
##
  output$DT <- renderDataTable({
  if(length(input$pick) > 0 ) {
# browser()
    isolate( { labs <- input$pick } ) # 
    buttn <- valPpu$buttonF

    iter <- length(labs)   
    valLabs <- sapply(1:iter, function(i) {
            as.numeric(input[[paste0(labs[i],"_v",buttn)]]) })

    if( iter == sum(sapply(valLabs,length)) ) {        

          cPerc <- valLabs
          cPerc <- as.data.table(cPerc)
          cPercDt <- cbind(Month=labs,cPerc)

          ival <- which(dt[["Month"]] 
              %in% cPercDt[["Month"]])
          setkey(cPercDt, "Month") 
          for(j in LETTERS[1:5]) set(dt_, i=ival, 
          j=j, dt[cPercDt][[j]] * (1 + dt_[cPercDt][["cPerc"]]) )
          valPpu$dt_ <- dt_
  } }

  dt_[order(id),]
  }, options = list(
  scrollX = TRUE,
  scrollY = "250px" ,
  scrollCollapse = TRUE,
  paging = FALSE,
  searching = FALSE,
  ordering = FALSE )
)
##
  output$foo <- renderUI({
    if(is.null(input$saveButton)) { return() }
    if(length(input$pick) > 0 ) {
      labs <-  input$pick 
      iter <- length(labs)
      buttn <- isolate(valPpu$buttonF )
      valLabs <- sapply(1:iter, function(i) {
      if(is.null(input[[paste0(labs[i],"_v",buttn)]] )) {
                0
      } else {  as.numeric(input[[paste0(labs[i],"_v",buttn)]])  }
      }) 
  #
  toRender <- lapply(1:iter, function(i) {
    sliderInput(inputId = paste0(labs[i], "_v",buttn),
                label =  h6(paste0(labs[i],"")),
                min = -1,
                max = 1,
                step = 0.01,
                value = valLabs[i],
                # format = "##0.#%",
                ticks = FALSE, animate = FALSE)
                })

      toRender
    }
    })


    observe({

  if(is.null(input$saveButton)) { return() }
  if(input$saveButton < valPpu$buttonF) { return() }
  valPpu$buttonF <- valPpu$buttonF + 1
  dt <<- valPpu$dt_
# TODO: add proper saving code  
})
  }
)

在实际的应用程序中,checkboxGroupInput 也是通过 renderUI 从服务器驱动的,并在按下“更新模型”时重置。另外,UI 中还有更多“事件”我没有添加到代码中。

任何想法?


所以你目前的方法实际上works。 FWIW,滑块已从 HTML 中删除,因此您无需担心这一点。对于存储在中的旧值input, 例如input[['Jan_v1']]当按钮被点击两次时(你只需要input[['Jan_v2']]),我不明白为什么你这么关心它们,除非你的总内存小于几千字节,因为你只需要几个字节来存储这些值。您可能确实无法从中删除这些值input,但我建议您不要花时间在这个问题上,直到它成为真正的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除闪亮的renderUI中的输入? 的相关文章

  • 无法更新/编辑从 R 中的包(`gratia`)导出的 ggplot2 对象

    我希望我在这里遗漏了一些令人痛苦的明显的东西 我希望更新 例如 修复标题 实验室等 由 生成的 ggplot 对象gratia draw 不太确定为什么我无法更新该对象 有一个简单的解决方案吗 devtools install github
  • R、Rcpp 与 Armadillo 中矩阵 rowSums() 与 colSums() 的效率

    背景 来自 R 编程 我正在扩展到 C C 形式的编译代码Rcpp 作为循环交换 以及一般的 C C 效果的实践练习 我实现了 R 的等效项rowSums and colSums 矩阵的函数Rcpp 我知道它们以 Rcpp 糖的形式存在 并
  • R中的字典数据结构

    在 R 中 我有 例如 gt foo lt list a 1 b 2 c 3 如果我输入foo I get a 1 1 b 1 2 c 1 3 我怎样才能看透foo仅获取 键 列表 在这种情况下 a b c R 列表可以具有命名元素 因此可
  • 将字符串列拆分为多个虚拟变量

    作为 R 中 data table 包的相对缺乏经验的用户 我一直在尝试将一个文本列处理为大量指示符列 虚拟变量 每列中的 1 表示特定的子字符串是在字符串列中找到 例如我想处理这个 ID String 1 a b 2 b c 3 c 进入
  • R 可以创建带有可单击条形图的条形图图像以插入网页吗?

    我知道如何创建条形图 以及如何将其粘贴在网页上 例如 使用hwriteImage in the 作家包 http www embl de gpau hwriter 我想要的是每个栏都是一个在鼠标悬停时突出显示的区域 并且每个栏在单击时都有不
  • 列出 R 数据文件的内容而不加载

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

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 如何在 data.table 中分组后使用条件计算行数

    我有以下数据框 dat lt read csv s1 s2 v1 v2 a b 10 20 a b 22 NA a b 13 33 c d 3 NA c d 4 5 NA c d 10 20 dat gt A tibble 6 x 4 gt
  • 在R中循环子文件夹

    我正在 R 环境中包含多个子文件夹的文件夹中工作 我想要循环遍历多个子文件夹 然后在每个子文件夹中调用 R 脚本来执行 我想出了下面的代码 但我的代码似乎添加了 到子文件夹列表 我收到错误 文件中的错误 文件名 r 编码 编码 无效的 描述
  • 如何纠正 data.frame 上的字符编码

    我有一个像这样的数据框 data names lt data frame DATA c 1 5 rownames data names lt c IV xc1N JOS xc9 LUC xcdA RAM xd3N TO xd1O data
  • 为什么 sapply 的缩放速度比样本大小的 for 循环慢?

    假设我想采用向量 X 2 1 N 并将 e 计算为每个元 素的指数 是的 我认识到最好的方法就是通过向量化 exp X 但这样做的目的是将 for 循环与 sapply 进行比较 我通过逐步尝试三种方法 一种使用 for 循环 两种以不同方
  • 如何在 R 中的 for 循环内将值存储在向量中

    我正在开始使用 R 但我对以下问题感到非常沮丧 我试图将 for 循环内完成的某些计算的值存储到我之前定义的向量中 问题是如何进行索引 因为for循环迭代代码的次数取决于用户的输入 所以变量i不一定要从1开始 它可以从80开始 for举个例
  • 更新 R6 对象实例中的方法定义

    如何更新 R6 类实例的方法定义 正如我所期望的 S3 使用当前的方法定义 对于 R5 参考类 我可以使用 myInstance myInstance copy 在 R6 中 我尝试了 myInstance myInstance clone
  • R - 重塑 - 熔化错误

    我正在尝试融化数据框 但出现了这个奇怪的错误 有什么想法吗 str zx7 data frame 519 obs of 5 variables calday new Date format 2011 01 03 2011 01 04 201
  • 在 R 中提取 data.frames 列表的名称以及 data.frame 中的值

    在下面的代码中 j是 data frames 的命名列表 我想知道是否有办法 a 提取变量的数值 即one short and one long 在 data frames 内并附加它们的相关名称 即 AAA or BBB or CCC 到
  • 在包加载之前如何知道 R 中特定函数属于哪个包?

    例如 我知道许多流行的功能 例如tbl df 我通常不记得它属于哪个包 即data table or dplyr 所以我必须始终记住并加载一个包 但我做不到 tbl df除非我加载了正确的包 在 R 控制台本身加载或安装包之前 有没有办法知
  • dplyr:连接中的 NSE (by)

    我很难弄清楚如何使用 dplyr left join 和 NSE 连接两个表 问题是我无法为 by 提供正确的值 我想我现在已经找到了解决方案 但感觉我正在以一种额外复杂的方式来做 因此 如果您知道更简单 更优雅的解决方案 请告诉我 这就是
  • 从数据框中绘制多条平滑线

    我对 R 比较陌生 我正在尝试绘制从 csv 文件加载的数据框 数据由 6 列组成 如下所示 xval col1 col2 col3 col4 col5 第一列 xval 由一系列单调递增的正整数 例如 10 40 60 等 组成 其他列
  • 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
  • 当设置 coord_fixed 时,ggplot/shiny 中的鼠标悬停坐标是错误的

    我正在使用问题中的答案 当您将鼠标悬停在闪亮的 ggplot 上时出现工具提示 https stackoverflow com questions 27965931 tooltip when you mouseover a ggplot o

随机推荐

  • 如何配置 pom.xml 文件以使用 Nexus 存储库管理器

    我在用Redhat java 1 7 maven 3 2 5 jenkins 1 6 git version 2 0 5 and nexus 2 12 0 01 我创建了一个本地Nexus Repository为了我的内在发展 现在我想做的
  • SQL Server Express 和 SQL Server 2005 上的事务隔离和读取多个表

    我有一个数据库 其中有一个主表 我们称之为所有者 和几个包含资产的子表 如汽车 书籍等 例如 Owner有列 owner id name Cars有列 owner id foreign key brand Books有列 owner id
  • 在没有 WWW-Authenticate 的情况下返回 AJAX 响应的 HTTP 401 状态

    可以退货吗HTTP 401如果您希望表明用户尚未登录 即使登录机制是基于表单而不是基于 HTTP 基本 摘要等 AJAX 调用响应的状态 这里的答案建议应该使用 401 https stackoverflow com a 6937030 2
  • 使用 pd.read_json 读取 JSON 文件时出现 ValueError 错误

    我正在尝试使用 pandas 读取 JSON 文件 import pandas as pd df pd read json https data gov in node 305681 datastore export json I get
  • 定期将数据从 mexFile 发送到 MATLAB

    我现在正在开发一个完全编写的数据采集工具 在 MATLAB 中 我用 MATLAB 写这个东西是我同事的愿望 以便他们可以扩展和修改它 该软件需要从两个连接的 USB 摄像头抓取照片 这些相机的 API 是用 C 编写的并记录在案 gt H
  • 在父级单击时触发事件,但在子级单击时不触发事件

    如果我有一个绝对定位的父 div 然后有一个具有较高 z index 且相对定位的子 div 有没有办法仅在父 div 被单击而不是内部 div 时才注册单击事件 相关jsFiddle http jsfiddle net Bt5HA 更新了
  • 通过将参数传递给 codeigniter 中的构造函数来加载库

    我正在使用代码点火器 我在 code igniter 中定义了一个库 并期望在其构造函数中包含一个参数 这是我的库代码 My Library Code Test lib php
  • strcpy 传递初始化的空指针 c [重复]

    这个问题在这里已经有答案了 我正在尝试以下代码 int main char yo yo char whaddup NULL strcpy whaddup yo 我遇到了段错误 在这里完成 C 菜鸟 其他地方说我应该初始化whaddup作为一
  • EF4 + MVVM - 在 ViewModel 中公开实体?

    我尝试过模型 视图 视图模型的一些不同实现 并且经常遇到我不确定正确的继续方法的情况 我知道 MVVM 的目标之一是将视图与应用程序逻辑解耦 以便可以在没有视图的情况下测试逻辑 将逻辑放入不依赖于 View 的 ViewModel 中可以解
  • 下载 Azure Web 应用程序?

    我刚刚开设了一个免费的 Azure 试用帐户 并通过各种表格创建了一个测试 Web 应用程序 但是 我想使用 Visual Studio 2015 在本地编辑源文件 是否可以下载注册期间生成的文件 如果可以 如何下载 谢谢你的帮助 您可以使
  • 如何将可变宽度的浮动元素水平居中?

    如何将可变宽度的浮动元素水平居中 编辑 我已经使用包含的div对于浮动元素并指定width对于容器 然后使用margin 0 auto 对于容器 我只是想知道是否可以在不使用包含元素的情况下完成 或者至少不需要指定width对于包含元素 假
  • 编写拼字游戏的算法

    我正在研究一个类似填字游戏的问题 但我不知道如何设计算法 例如 字典里有 汽车 苹果 等词 黑板上给出了 app 一词 有像 l e c r 这样的字母用于造词 所以算法的任务是生成存储在字典中的正确单词 app gt lapp gt le
  • 如何检查字符串是否为数字 Julia

    一直在互联网上搜索试图弄清楚这一点 尝试过isnumeric 但这仅适用于AbstractChar 我宁愿不用tryparse如果可能的话 但如果这是唯一的解决方案 那就这样吧 如果是的话 为什么还没有实现检查字符串是否为数字的函数 我发现
  • BasicAuth、OAuth 和 XAuth 之间有什么区别?

    最近我听说 Twitter 将关闭 Twitter API 上的基本身份验证 并转向 OAuth 所以我想知道BasicAuth OAuth 和XAuth 之间有什么区别 每个 Auth 的优点和缺点是什么 xAuth 是 OAuth 的简
  • 如何将Rtools\bin添加到R中的系统路径

    我正在运行一个闪亮的应用程序https github com MikeJSeo SAM https github com MikeJSeo SAM以及访问它的代码 install packages c samr matrixStats GS
  • Google Analytics Gtag 多个 Analytics 帐户跟踪 ID

    据我所知 谷歌现在似乎正在逐步淘汰analytics js 转而使用他们的标签管理器 如何为多个分析帐户触发 Google Analytics 新的 gtag 跟踪代码 像这样的事情
  • ggplot:根据用户定义的颜色按组划分颜色点

    我试图定义 ggplot 中绘制的点组的颜色 我改编了这篇文章的代码 根据定义的颜色代码为 ggplot 点着色 https stackoverflow com questions 9827193 color ggplot points b
  • NuSOAP 和数组响应

    我有 NuSOAP 网络服务器 server gt register getMembersEvents array date gt xsd string array Events gt tns Events urn my false rpc
  • R:如何读取列线图来预测所需的变量

    我正在使用 Rstudio 我使用函数创建了列线图nomogram从包装中rms使用以下代码 从示例代码复制文档 http www inside r org packages cran rms docs nomogram library r
  • 如何删除闪亮的renderUI中的输入?

    在我闪亮的应用程序中 我有一个使用 renderUI 的动态输入 这工作得很好 程序的另一部分捕获滑块的输入 当应用程序状态发生变化时 例如 当按下 更新模型 按钮时 我仍然需要显示 使用具有类似标签的滑块 但由于它们是 新的 因此需要将值