【问题标题】:Strange behavior in shiny RMarkdown闪亮的 RMarkdown 中的奇怪行为
【发布时间】:2019-11-04 23:43:36
【问题描述】:

在编织闪亮的 RMarkdown HTML 文档时,我遇到了一些非常奇怪的行为。在下面的 MWE 中,我只是(1)包含一个滑块输入,(2)在 df 中包含一个列作为输入的值,然后(3)返回 df。下面的 MWE 返回错误 Error in : Column "b" must be length 1 (the number of rows), not 0。如果我在为 b 赋值时取出输入值的乘法,则文档编织没有问题。 MWE:

---
output: html_document
runtime: shiny
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(dplyr)
```

Testing

```{r eruptions, echo=FALSE}
# Input slider
sliderInput("test", "Test", value = 0.5, min = 0, max = 1, width = "100%")

# Pre-define df
output <- reactiveValues(data = data.frame(a = 20))

observe({

  output$data <- output$data %>%
    # Manipulate df
    mutate(b = input$test * 2)

})

# Return df
renderDataTable({output$data})

```

有谁知道是什么导致了这种奇怪的行为?

【问题讨论】:

    标签: r shiny r-markdown


    【解决方案1】:

    这就是我怀疑发生的事情 ---

    我认为您的observe 第一次运行时,input$test 为 NULL。

    如果您的 mutate 将列设置为 NULL,它只会删除该列。

    如果您使用input$test * 2,它将返回一个空向量numeric(0)。尝试添加带有空向量的列会出错。

    如果在observe 函数的开头添加req(input$test),它会起作用吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 1970-01-01
      • 2015-03-25
      • 2020-04-14
      • 2016-02-03
      • 2015-10-19
      相关资源
      最近更新 更多