if 语句摆脱: if 中的错误:参数长度为零

2023-12-30

The idea

根据selectizeInput()输入 我想显示数据框中的一行数据。然而,某些变量只有在其值不存在时才会显示。FALSE. selectizeInput()包括一个占位符提示,这是非常理想的。

问题

我开发的代码实际上可以工作,但直到选择任何选项才会显示

if 中的错误:参数长度为零

在应用程序内部,这是非常不可取的。

示例代码

library("shiny")

# simulate data
data <- data.frame(
  name = c("Adam", "Debbie", "Lancelot", "Dracula"),
  age = c(21, 48, 72, 1023),
  coward = c("yes, a coward", "just a little bit", FALSE, "too old to be a coward")
)

ui <- fluidPage(
  # selectize
  selectizeInput(
    inputId = "input",
    label = NULL,
    choices = c("..." = "", as.character(data[, "name"])),
    selected = NULL,
    multiple = FALSE
  ),
  # show output
  uiOutput(outputId = "output")
)

server <- function(input, output, session){
  output$output <- renderUI({
    div(
      # show name
      data[which(input$input == data[, "name"]), "name"], br(),
      data[which(input$input == data[, "name"]), "age"], br(),
      # if "coward" is not FALSE than show its value
      if(data[which(input$input == data[, "name"]), "coward"] != FALSE){
        data[which(input$input == data[, "name"]), "coward"]
      }
    )
  })
}

shinyApp(ui, server)

尝试过的解决方案

尝试过包裹if()中的声明suppressWarnings() or suppressMessages()。不会改变任何东西。也尝试过放!is.null(input$input) && inside if()条件但它只是将初始误差更改为

错误:需要 TRUE/FALSE 时缺少值

问题

如何写条件使得shiny在选择选项之前不会返回错误selectizeInput()?

任何其他更通用的黑客攻击shiny不在应用程序内显示错误消息?

我觉得我在这里遗漏了一些明显的东西......


每当你在 R 中遇到不确定的错误时,首先要做的就是尝试隔离它并使用browser()查看错误发生之前发生的情况。这样做之后,我发现错误与闪亮或用户界面无关,这只是因为你试图比较factor(0) to FALSE.

的价值input$input最初是""。这意味着data[which(input$input == data[, "name"]), "coward"]最初是factor(0)。这意味着你的 if 语句正在执行factor(0) == FALSE比较,这就打破了。

为了弄清楚我需要做的就是将服务器代码简化为

server <- function(input, output, session){
  observe({
    mydata <- data[which(input$input == data[, "name"]), "coward"]
    browser()
    if (mydata == FALSE) {
      cat("hello")
    }
  })
}

使用调试器我看到正在使用哪些值

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

if 语句摆脱: if 中的错误:参数长度为零 的相关文章

随机推荐

  • 跳转到 Intellij IDEA 中的编辑器快捷方式

    I can use F12 to jump to project tree if it was the last tool that I used but is there a shortcut for jumping back to ed
  • 将CAB文件添加到操作系统设计中

    我需要将 CAB 文件 我的安装 添加到操作系统设计中 但我找不到方法来做到这一点 我需要它来在操作系统第一次加载时自动安装程序 我说的是win Compact 7 你能帮助我吗 我有点困惑 为什么要将 CAB 添加到操作系统设计中并在运行
  • 如何在 Java 中比较两个版本字符串?

    是否有比较版本号的标准习惯用法 我不能只使用直接的 String CompareTo 因为我还不知道最大的点释放数量是多少 我需要比较版本并确保以下内容成立 1 0 lt 1 1 1 0 1 lt 1 1 1 9 lt 1 10 这篇旧文章
  • 在 Ruby on Rails (MySQL) 中使用“end”作为列名称

    我有一个带有 结束 列 日期时间格式 的模型 却发现每当我尝试在查询中引用该列时 Heroku 都会崩溃并因不合逻辑的 Active Record 错误而烧毁 我花了两个小时尝试调试这个极其简单的查询 之后我将该列重命名为 end at 所
  • Git 存储库从一台机器到另一台机器

    所以我有一个 git 存储库 我曾在某个时刻提取过该存储库 并且该存储库驻留在服务器上 我无权访问我从中提取它的原始存储库 如何将代码从现有服务器获取到另一台计算机 编辑1 所以它看起来像这样 计算机 A 我最初从中签出的 git 存储库
  • pandas 0.21.0 时间戳与 matplotlib 的兼容性问题

    我刚刚将 pandas 从 0 17 1 更新到 0 21 0 以利用一些新功能 并遇到了与 matplotlib 的兼容性问题 我也将其更新到最新的 2 1 0 特别是 Timestamp 对象似乎发生了重大变化 我碰巧有另一台机器仍在运
  • Python 编译器是否可以优化一些整数运算?

    灵感来自this https stackoverflow com questions 11476190 why 0 6 is 6 false关于Python缓存小整数的问题 Python编译器是否可以在编译时将 0 6 替换为 6 下面的代
  • android TabLayout 从服务器设置图标

    我可以从服务器上设置图标吗TabLayout using Picasso library private string path 192 168 0 102 project a png TabLayout tabLayout TabLayo
  • 在 Heroku 上使用 React、Axios 访问内部 API

    我正在构建一个全栈 React 应用程序 该应用程序使用 Axios 访问其自己的后端 API 在我的本地环境中 以下内容按预期工作 服务器使用 JSON 数据进行响应 然后正确呈现该数据 axios get api questions c
  • Grunt Livereload + Grunt Connect 代理

    我在我的 API 中使用 Rails 在前面使用 AngularJS 并且在使 livereload grunt connect 代理正常工作时遇到一些问题 这是我的 gruntfile 中的片段 connect options port
  • MYSQL 查询锁定服务器

    当尝试执行此查询时 我的 mysql 服务器 cpu 使用率达到 100 并且页面停止运行 我在 Client Code Date Time Time Stamp Activity Code Employee Name ID Transac
  • 为什么我看到“排序规则‘xxx’对于字符集‘yyy’无效”

    我使用的是 Amazon RDS 上的 MySQL 5 6 22 InnoDB 我尝试将所有表 列 连接和数据库字符集和排序规则设置设置为 utf8mb4 utf8mb4 unicode ci 我在任何地方都找不到任何证据表明任何东西都有字
  • Java获取html文件

    复制 如何用 Java 以编程方式下载网页 https stackoverflow com questions 238547 how do you programmatically download a webpage in java 如何
  • 如何将 IPython 笔记本转换为 PDF 和 HTML?

    我想转换我的 ipython 笔记本来打印它们 或者只是以 html 格式发送它们 我注意到已经有一个工具可以做到这一点 NB转换 https github com ipython nbconvert 虽然我已经下载了它 但我不知道如何使用
  • 在 Firebase 托管上提供 gzip 压缩文件

    我对使用 Firebase 托管提供 gzipped html css js 文件感兴趣 我尝试在 firebase json 中设置 Content Encoding 标头 但在部署时出错 据称 您可以设置的唯一标头包括 Cache Co
  • 为什么我要 std::move std::shared_ptr?

    我一直在寻找铿锵源码 https clang llvm org doxygen CompilerInstance 8cpp source html l00069我发现了这个片段 void CompilerInstance setInvoca
  • 将汇编 NASM 代码链接到 GCC

    我在编译汇编代码 nasm 时遇到问题 在 Linux elf32 上 使用 g 编译后它不会失败 但是当我尝试使用 i686 w64 mingw32 g 对于 Win32 构建它时 它失败了 我的 build sh 脚本 bin bash
  • 组合两个具有重叠范围的数据框并计算按类别分组的重叠

    建立在这个答案 https stackoverflow com questions 58570888 combine two dataframes based on ranges which may partially overlap us
  • 为什么方括号内的点不匹配任何字符?

    为什么这个 Java正则表达式与我的不匹配 foo 文本 同时 完美匹配 已测试here http www regexplanet com advanced java index html 相当于逃避 点 字符 即 一旦角色出现在字符类 h
  • if 语句摆脱: if 中的错误:参数长度为零

    The idea 根据selectizeInput 输入 我想显示数据框中的一行数据 然而 某些变量只有在其值不存在时才会显示 FALSE selectizeInput 包括一个占位符提示 这是非常理想的 问题 我开发的代码实际上可以工作