默认 updateDateInput 今后不起作用

2023-12-05

我有一个简单的应用程序,它使用动态 UI 元素,updateDateInput,以确保用户只能选择指定年份中的日期。所选日期应始终默认为所选年份的第一天。

library(shiny)
library(tidyverse)
library(lubridate)

ui <- fluidPage(
  selectInput("year", "Select Year:",
              choices = 2010:2020, selected = 2015),
  dateInput("date", "Select Date:", value = NULL)
)

server <- function(input, output, session) {
  observeEvent(input$year, 
               updateDateInput(session, "date", 
                               min = ymd(paste(input$year, "01-01", sep = "-")),
                               max = ymd(paste(input$year, "12-31", sep = "-")),
                               value = ymd(paste(input$year, "01-01", sep = "-"))))
}

shinyApp(ui, server)

将所选年份向后移动时(例如 2015 年 - 2014 年),所选日期会自动更新为该月的第一天。然而,当用户将日期向前移动时,从 2015 年到 2016 年,所选日期默认为空,用户需要手动搜索才能找到当前年份的日期。

谁能帮我弄清楚为什么会发生这种情况?


这是一个令人讨厌的问题,当它发生在我身上时,我花了很长时间才找到它。问题是updateDateInput似乎做了一些未做的改变atomic。也就是说,它们不会同时发生,而是依次发生。因此,当同时更改输入小部件的多个参数时,有可能value暂时无效。

诀窍是确保所选日期在更新期间始终有效。这意味着分两个阶段进行更改,并且更改的顺序取决于您是在时间上向前还是向后移动。

这是一个可行的解决方案。

library(shiny)
library(tidyverse)
library(lubridate)

ui <- fluidPage(
  selectInput("year", "Select Year:",
              choices = 2010:2020, selected = 2015),
  dateInput("date", "Select Date:", value = NULL)
)

server <- function(input, output, session) {
  observeEvent(input$year, {
    req(input$date, input$year)
    
    # Are we going backwards or forwards?
    if (as.numeric(input$year > year(input$date))) {
      updateDateInput(
        session, 
        "date", 
        max = ymd(paste(input$year, "12-31", sep = "-")),
        value = ymd(paste(input$year, "01-01", sep = "-")),
      )
      updateDateInput(
        session, 
        "date", 
        min = ymd(paste(input$year, "01-01", sep = "-"))
      )
    } else {
      updateDateInput(
        session, 
        "date", 
        min = ymd(paste(input$year, "01-01", sep = "-")),
        value = ymd(paste(input$year, "01-01", sep = "-"))
      )
      updateDateInput(
        session, 
        "date", 
        max = ymd(paste(input$year, "12-31", sep = "-"))
      )
    }
  })
}

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

默认 updateDateInput 今后不起作用 的相关文章

  • 简单的数据框重塑

    我刚刚从长时间的写作中断中回到 R 并且在记住如何重塑数据方面遇到了一些实际问题 我知道我想做的事情很容易 但出于某种原因 我今晚很愚蠢 并且将自己与融化和重塑混淆了 如果有人能快速指出我正确的方向 我将不胜感激 我有一个这样的数据框 pe
  • 可以明确声明包依赖项的版本吗?

    我倾向于对我编写的代码进行明确而不是隐含的描述 因此 在成功创建自己的包之后 我立即想到的下一件事是如何最好地确保代码的健壮性和可靠性 其中一部分与我的包所依赖的包有关 实际问题 在这方面 是否可以明确声明需要 期望哪个版本的包依赖项 我正
  • 如何使用 r 中的 caret 包在最佳调整超参数的 10 倍交叉验证中获得每次折叠的预测?

    我试图使用 R 中的插入符包使用 10 倍交叉验证和 3 次重复来运行 SVM 模型 我想使用最佳调整的超参数获得每次折叠的预测结果 我正在使用以下代码 Load packages library mlbench library caret
  • 在 mac (iMac OSX ) 终端中远程运行脚本(r 脚本)到其他计算机

    我有一个小示例脚本 script p r 如下所示 打算在终端中运行 usr bin Rscript sink output capture txt mn lt mean 1 10 and so on much longer list of
  • 将 JSON URL 转换为 R 数据帧

    我在将 JSON 文件 从 API 转换为 R 中的数据帧时遇到问题 例如 URL 我尝试了 S O 的一些不同建议 包括将json数据转换为R中的数据框 https stackoverflow com questions 28683769
  • ggplot 中的错误问题:“grid.Call(”L_textBounds“, as.graphicsAnnot(x$label), x$x, x$y, … 中的错误”[重复]

    这个问题在这里已经有答案了 我试图在 ggplot 中制作一个条形图 其中我通过强制其中一些标签为长度为零的字符串 即 来指定要显示的标签 但是 我收到错误 Error in grid Call L textBounds as graphi
  • 如何更新条件公式?

    让我直接进入示例 考虑以下等式 frml lt formula y a b x z 使用这样的公式规范 例如和AER ivreg 我想更新这个公式 使其显示为 frml2 lt y a b c x z w 但是 我不确定如何更新条件标志之前
  • 如何在 R 中为传单中的数值变量设置不对称颜色渐变

    我想让传单调色板以零为中心 红白绿发散 我已经尝试过中所说的这个帖子 https stackoverflow com questions 29262824 r center color palette on 0 当我尝试手动创建颜色时 我得
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • 在 R 中绘制对数正态概率密度

    我正在尝试在 R 中生成对数正态概率密度图 其中包含 3 个不同的均值对数和标准差对数 我尝试了以下方法 但我的图表太丑了 看起来一点也不好看 x lt seq 0 10 length 100 a lt dlnorm x meanlog 0
  • R.matlab/readMat:readTag(this) 中出错

    我正在尝试使用 R matlab 将 matlab 文件读入 R 但遇到此错误 require R matlab r lt readMat file mat verbose T Trying to read MAT v5 file stre
  • R 更改小数位且不四舍五入

    gt signif 1 89 digits 2 1 1 9 我想要1 8 这有点笨拙 但它会起作用并保持所有数字 x lt 1 829380 trunc dec lt function x n floor x 10 n 10 n Resul
  • 如何按 data.table 中的十分位数组计算统计数据

    我有一个 data table 想按组计算统计数据 R set seed 1 R DT data table a rnorm 100 b rnorm 100 这些组应该定义为 R quantile DT a probs seq 1 9 1
  • 比较 R 中的两个字符向量

    我有两个 ID 字符向量 我想比较这两个字符向量 特别是我对以下数字感兴趣 A和B各有多少个ID 有多少个ID在A中但不在B中 有多少个ID在B但不在A 我还想画维恩图 以下是一些可以尝试的基础知识 gt A c Dog Cat Mouse
  • 为绘图制作 2D 图例 - 双变量分区统计图

    我一直在玩双变量 choropleth 地图 并且一直在如何创建类似于 2d 图例的问题上陷入困境约书亚 史蒂文斯 http www joshuastevens net cartography make a bivariate chorop
  • R 中的字符串作为函数参数

    数据框chocolates列出了糖果的类型以及每种糖果的一组评级 ID sweetness filling crash snickers 0 67 0 55 0 40 milky way 0 81 0 53 0 56 我正在编写一个函数 它
  • 为什么 geom_boxplot 比基本箱线图识别更多异常值?

    这是一个可重复的示例 与基本箱线图相比 最后一个治疗组又发现了一个异常值 dta lt structure list Treatment c A A A A A A A A A A A A A A A A B B B B B B B B B
  • 具有 dplyr、tidyverse 和 broom 的相关矩阵 - P 值矩阵

    全部 我想使用以下方法从相关矩阵中获取 p 值dplyr 和 或扫帚包 并同时测试多个变量 我知道其他方法 但 dplyr 对我来说似乎更简单 更直观 此外 dplyr 需要关联每个变量以获得特定的 p 值 这使得该过程更容易 更快 我检查
  • 如何将 ggrough 图表另存为 .png

    说我正在使用R包裹ggrough https xvrdm github io ggrough https xvrdm github io ggrough 我有这个代码 取自该网页 library ggplot2 library ggroug
  • 单击 R 中的 Sankey Chart 线时添加额外的标签值

    以下 R 闪亮脚本创建一个桑基图 如下面的快照所示 我的要求是 当我单击左右节点之间的任何链接 即 a1 和 a2 时 我希望相应的 a3 的总和出现在标签中 例如 a1 中的 A 和 a2 中的 E 总共具有值 50 和 32 因此 我想

随机推荐

  • 如何确定 javascript 模块是否通过脚本 src 导入或加载?

    假设我有一个名为module js export default function greet console info hello Within module js 无论是在函数内部还是外部greet 如何确定模块是否已使用以下方式加载
  • 如何从另一个片段打开一个新片段?

    我尝试在片段之间进行导航 我有NewFragment java随着新片段的工作 我的问题是 我该怎么做这个onClickListener run NewFragment java正确吗 button setOnClickListener n
  • 如何使用 Retrofit-Android 记录请求和响应正文?

    我在 Retrofit API 中找不到用于记录完整请求 响应主体的相关方法 我 期望在探查器中得到一些帮助 但它只提供有关响应的元数据 我尝试在生成器中设置日志级别 但这也对我没有帮助 RestAdapter adapter new Re
  • Ajax 请求不是异步的

    我有一个ajax问题 foreach ids as id ajax url script php data id id cache false 如果我循环 6 次 在 foreach 循环中 我应该向服务器发出 6 个异步请求 但本例中的
  • 如何在sqlalchemy中按列表排序数据

    我有来自外部 postgresql 数据库的 ID 列表 A 1 2 3 4 5 6 7 98 0 我会使用 SQLAlchemy 对数据库进行查询 但我会按 A 列表对 postgresql 中的数据进行排序 我已经阅读了很多文档 但找不
  • RegExp 不区分大小写的多字突出显示

    我试图突出显示关键字搜索的正常工作 我遇到了几个问题 不区分大小写适用于第一个单词 但希望它替换为原始大小写单词 而不是小写搜索单词 即搜索趋势 它用趋势替换趋势 我知道为什么 但想弄清楚如何替换回找到的单词 而不是搜索到的单词 第二个单词
  • 错误:无法找到或加载主类 - 新手

    大家好 我是JAVA新手 尽管文件存在于我在路径中指定的位置 但我一直收到此文件未找到异常 最初我遇到了找不到文件的问题 但是 在执行清理并重新运行后 现在我遇到了一个问题 上面写着 错误 无法找到或加载主类 main main impor
  • Selenium WebDriver:使用 XPath 单击 SVG 中的元素

    我有一个带有一些圆形和矩形元素的 SVG 对象 使用 webdriver 我可以单击主 svg 对象 但不能单击其中的任何元素 问题似乎仅与单击 或任何鼠标交互 有关 因为我可以使用 getAttribute 为其下的任何内容返回宽度 ID
  • Postgres:不同但仅适用于一列

    我在 psql 上有一个带有名称的表 具有超过 1 个 mio 行 但我也有很多重复项 IN 选择 3 个字段 id name metadata 我想随机选择它们ORDER BY RANDOM and LIMIT 1000 所以我做了很多步
  • Heroku 上未处理delayed_job 队列

    我正在运行带有delayed job 的Rails 3 应用程序 我遇到的问题是 尽管应用程序正确地将作业添加到队列中 但它们从未被处理 My Class class User lt ActiveRecord Base after crea
  • 适用于 Chrome、Firefox、Safari 标准参考和工具的 Web 扩展(浏览器插件)(2021 年)

    据我记得我们今天使用的浏览器插件的正确名称实际上称为 Web 扩展 在每个浏览器都有自己的 API 之前 Chrome 和 Firefox 都同意 现在 Safari 2021 年将在 macOS 11 上推出 v14 看到 https d
  • fetch(PDO::FETCH_ASSOC 只返回一行

    从现在已弃用的 mysql 代码更改为 DO 该代码应该输出表中的所有值 这是代码 stmt pdo gt prepare SELECT FROM admin WHERE user id user id stmt gt bindParam
  • UITableViewController 以编程方式访问静态单元格问题

    假设我有一个包含 10 个静态单元格的表格 有没有办法以编程方式选择某个单元格 我试过这个 UITableViewCell cell self tableView subviews objectAtIndex indexPath row 但
  • PHP utf8_encode() 将空格转换为不间断空格[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 非常简单 utf8 encode string 用不间断空格 u00a0 替换常规空格 我尝试使用 str replace 过滤结果 str replace u00a0 utf8 enco
  • C 中的外部链接

    K R 说 默认情况下 外部变量和函数具有以下属性 所有以相同名称对它们的引用 即使是单独编译的函数 也是对同一事物的引用 请解释一下这是什么意思 我不明白 考虑两个函数 extern int extern sqr int i return
  • java itext 使用希伯来语(rtl)和英语创建pdf

    我想创建一个同时包含英语和希伯来语的 pdf 文档 我可以使用以下命令查看希伯来语字母 BaseFont unicode BaseFont createFont c windows fonts arialuni ttf BaseFont I
  • jQuery 可调整大小:将调整宽度加倍

    概要 如果将可调整大小的元素居中并向左 右扩展 它会产生一种错觉 即它仅扩展了鼠标移动的一半 Reason 发生这种情况是因为对象居中 问题 与鼠标移动相比 如何提高对象调整大小的速率 对于居中的元素 我希望对象扩展为鼠标距离的两倍 给定一
  • Go 中 Syscall.RawSyscall() 和 Syscall.Syscall() 的详细信息?

    我正在阅读包中的源代码syscall现在 遇到了一些问题 因为我完全是菜鸟syscall and assembly 所以请毫不犹豫地分享您所知道的任何信息 首先关于 funcRawSyscall trap a1 a2 a3 uintptr
  • 如何配置maven-bundle-plugin以排除Import-Service和Export-Service?

    我使用 maven bundle plugin 创建 OSGi 合规性 jar 它生成预期的 OSGi MANIFEST 导入服务和导出服务除外 根据http wiki osgi org wiki Import Service 不推荐使用
  • 默认 updateDateInput 今后不起作用

    我有一个简单的应用程序 它使用动态 UI 元素 updateDateInput 以确保用户只能选择指定年份中的日期 所选日期应始终默认为所选年份的第一天 library shiny library tidyverse library lub