当数据集更改时,在闪亮的应用程序中动态显示列名称会闪烁错误

2024-02-05

我有一个闪亮的应用程序,我希望允许用户根据一组上传的文件选择数据集,然后指定要从所选数据集中显示的列。如果我选择某些列然后切换数据集,则会闪烁错误并输出到控制台,指出在应用程序切换数据集并正确显示之前所选列未知。然而,在我的完整应用程序中,应用程序崩溃了,尽管我无法弄清楚如何重现崩溃。我认为这可能与一些预处理有关,这些预处理是为了添加额外的列而完成的,这些列在数据集中相同并且保持选中状态,但如果没有该功能,错误是相同的。

library(shiny)
library(tidyverse)
library(DT)


ui <- fluidPage(
  checkboxGroupInput("select_var", label = "Select Variables"),
  selectInput("dataset", label = NULL, choices = c("mtcars", "rock")),
  DT::dataTableOutput("table")

)


server <- function(session, input, output) {
  # define the dataset
  data <- reactive({switch(input$dataset,"rock" = rock,"mtcars" = mtcars)})

  # add a common column name that is always selected
  dataprocessed <- reactive({data <- data()
                             data$num <- seq(1:nrow(data))
                             return(data)})

  # dynamically generate the variable names
  observe({
    vchoices <- names(dataprocessed())
    updateCheckboxGroupInput(session, "select_var", choices = vchoices, selected = c("num"))
  })

  # select the variables based on checkbox
  data_sel <- reactive({
    req(input$select_var)
    df_sel <- dataprocessed() %>% select(input$select_var) 
      })

  output$table <- DT::renderDataTable(data_sel())
}

# Run the application 
shinyApp(ui = ui, server = server)

我们可以使用添加条件要求req()在渲染之前测试列是否存在:

library(shiny)
library(tidyverse)
library(DT)

ui <- fluidPage(
  checkboxGroupInput("select_var", label = "Select Variables"),
  selectInput("dataset", label = NULL, choices = c("mtcars", "rock")),
  DT::dataTableOutput("table")

)

server <- function(session, input, output) {
  # define the dataset
  data <- reactive({
    switch(input$dataset,"rock" = rock,"mtcars" = mtcars)
  })

  # add a common column name that is always selected
  dataprocessed <- reactive({
    data <- data()
    data$num <- seq(1:nrow(data))
    return(data)
  })

  # dynamically generate the variable names
  observe({
    vchoices <- names(dataprocessed())
    updateCheckboxGroupInput(session, "select_var", choices = vchoices, selected = c("num"))
  })

  # select the variables based on checkbox
  data_sel <- reactive({
    req(input$select_var)
    req(names(dataprocessed()) %in% input$select_var)
    a <- names(dataprocessed())[names(dataprocessed()) %in% input$select_var]
    df_sel <- dataprocessed() %>% select(a) 
  })

  output$table <- DT::renderDataTable(data_sel())
}

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

当数据集更改时,在闪亮的应用程序中动态显示列名称会闪烁错误 的相关文章

随机推荐

  • 使用清单关闭应用程序缓存

    我正在编写一个使用 带有清单的应用程序缓存 的 HTML5 应用程序 但是 当我正在开发时 我想将其关闭 我尝试从标签中删除清单属性 并将清单文件中的所有内容切换到网络 尽管它确实在第一次更新时进行了更新 但所有后续更新仍然是从缓存而不是服
  • pnpm 工作区:* 依赖项

    我在 Docker 容器内安装部分 pnpm monorepo 时遇到严重问题 问题是docker build在某些方面失败devDependencies甚至不应该安装 devDependencies types node 17 0 12
  • 保留@OneToMany与@JoinColumn和@MapKeyColumn的关系

    我有两个实体 Entity Article Id GeneratedValue strategy GenerationType AUTO private Long id OneToMany fetch FetchType EAGER cas
  • 覆盖 PhoneGap Android 中的后退按钮

    我试图完成多个 addEventListener 但出了什么问题 例如 如果页面上有 3 个 div 第一个显示在开头 其他两个隐藏 div a a a gt div div div initially hidden div div ini
  • Jenkins:当 Maven 构建发生在 Docker 容器内时如何使用 JUnit 插件

    我正在尝试创建一个管道 Jenkins 在其中构建我的 Docker 映像 运行测试 然后在测试通过时部署容器 问题是我在 docker 容器内运行了 Maven 并且在运行容器之前我无法实际访问已发布的测试 我希望在测试通过后运行并部署
  • TclError:Google Colab 中没有显示名称且没有 $DISPLAY 环境变量

    这个错误 TclError no display name and no DISPLAY environment variable 当我尝试在 Google Colab 协作 Jupyter 笔记本 中运行 Python 3 6 程序时 出
  • 设置值后如何防止复选框动画

    在 Android gt 21 lollipop 上 如果我更改复选框的选中状态 它会执行动画 我想阻止它 我尝试暂时设置stateListAnimator to null 但这并没有帮助 如何防止动画出现 我遇到过同样的问题 这对我有帮助
  • Sinatra 不在日志文件中显示异常

    我从 Rails 转到 sinatra 在使用日志记录时遇到一些问题 我有一个 Sinatra 应用程序 它的日志记录如下 configure do Logger class eval alias write lt lt logger Lo
  • 以数据库用户身份部署到 Azure 时 SSDT 删除并重新创建权限

    我们有一个 SSDT 项目 其中包括用户 角色和权限 它运行得非常好 但最近迁移到 Azure 导致或可能突出了部署问题 在 Azure 之前 某些项目成员在主数据库上拥有一个具有足够权限来发布数据库的用户 在 Azure SQL Db 中
  • 如何设置 CircularProgressIndicator 的大小?

    我正在尝试为我的应用程序制作一个加载屏幕 我正在使用CircularProgressIndicator小部件 但我想知道是否有办法让它的高度和宽度更大 它太小了 那么 有人可以帮我解决这个问题吗 你可以把你的CircularProgress
  • 如何计算Python中两个日期之间一年中的天数

    例如 date 1 1 january 2000 date 2 17 november 2006 我想知道2000年 2001年 2006年日期1和日期2之间有多少天 所以我需要返回类似这样的东西 无论它是否在列表中或其他东西中 2000
  • 启动时间慢

    有什么办法可以加快Groovy的启动时间吗 除非按照建议使用某种单独运行的 Groovy 进程 我不太关心执行时间 但缓慢的启动使我无法在 Groovy 中进行开发 在我的机器上使用 Groovy 和 Ruby 启动和运行空脚本之间的简单比
  • gwt使用jquery效果可以吗?

    在我的 gwt 中 我有一个像下面这样触发的按钮来创建新的小部件 UiHandler buttonfire void addNewWidget ClickEvent event htmlPanelHolder add new MyCusto
  • 将参数传递给槽

    我想用一堆 QActions 和 QMenus 覆盖 mouseReleaseEvent connect action1 SIGNAL triggered this SLOT onStepIncreased connect action5
  • Parallel.For 与 BigInteger 计算输出不同于 For 循环

    我有以下循环运行从 base95 到 base10 的转换 我正在处理几千位数字 因此需要 BigIntegers inst是base95字符串 Parallel For 0 inst Length x gt result BigInteg
  • 如何在web.xml和log4j.properties中配置log4j输出文件路径?

    我开发了一个网络应用程序 可以在其中注册员工 My web xml
  • 从 Jackson 获取未知字段列表

    我有一个 JSON 架构和一个与该架构匹配的 json 字符串 但它可能有一些额外的字段 如果我不添加这些字段 杰克逊将抛出异常objectMapper configure DeserializationConfig Feature FAI
  • PDO 数据库访问 WHERE title = $title

    我正在尝试学习使用 PDO 而不是 MySQLi 进行数据库访问 但在从数据库中选择数据时遇到问题 我想使用 STH DBH gt query SELECT FROM ratings WHERE title title ORDER BY d
  • ios 5 上的 NSDateFormatter - 还有其他使用方法吗?

    我有一段代码在 iOS 4 3 5 之前一直有效 现在在 iOS 5 中不起作用 Example of date I m using Mon 31 Oct 2011 15 57 55 BRST NSDateFormatter formatt
  • 当数据集更改时,在闪亮的应用程序中动态显示列名称会闪烁错误

    我有一个闪亮的应用程序 我希望允许用户根据一组上传的文件选择数据集 然后指定要从所选数据集中显示的列 如果我选择某些列然后切换数据集 则会闪烁错误并输出到控制台 指出在应用程序切换数据集并正确显示之前所选列未知 然而 在我的完整应用程序中