【问题标题】:Assign Flexdashboard reactive input value to dataframe cell将 Flexdashboard 反应输入值分配给数据框单元格
【发布时间】:2018-08-09 16:17:58
【问题描述】:

我想将一些 flexdashboard 响应式输入值复制到数据框,以便可以将它们导出到文件中。此代码适用于 y 作为标量:

y <- reactive({input$data1})

但是这段代码没有使用 df 一个空列声明为数字的数据框:

df[1, 1] <- reactive({input$data1})

错误:子赋值类型修复中的不兼容类型(从闭包到双精度)

有人可以帮助我使用正确的语法来完成作业吗?谢谢...

不确定如何提交可重现的代码。这是此问题的整个 .Rmd:

---
title: "Untitled"
runtime: shiny
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
---

```{r setup, include=FALSE}
library(flexdashboard)
library(shiny)

df <- data.frame(MinVals = numeric(), MaxVals = numeric())

```

Inputs {.sidebar data-width=275}
-----------------------------------------------------------------------

```{r}

tags$h3("Test It")

sliderInput("data1",
             label = "Some data",
             value = 50,
             min = 0,
             max = 100,
             step = 5,
             width = 200)


```

Column {data-width=350}
-----------------------------------------------------------------------

### Chart A

```{r}

df[1, 1] <- reactive({input$data1})  # does not work

y <- reactive({input$data1}) # this works

renderValueBox({
    x <- y()
  valueBox(
    value = x,
    icon = "fa-area-chart",
    color = "orange")
})

```

【问题讨论】:

  • 没有可重复的例子,只能猜测。df[, 1] 似乎是 double 类型,input$data1 不是?您是否尝试过类似:if(!is.null(input$data1)) df[1, 1] &lt;- reactive({as.numeric(input$data1)})
  • 感谢您的回复。您的代码行产生错误消息:“Operation not allowed without an active reactive context”
  • 然后尝试删除 if 语句。或者,您将不得不共享可重现的代码,...
  • 感谢您的额外回复。我编辑了原始帖子,添加了整个 .Rmd 文件代码。为任何站点协议错误道歉。感谢您的帮助。
  • 不确定你想达到什么,但你可以试试:observeEvent(input$data1, df[1, 1] &lt;&lt;- input$data1 # does not work )

标签: r shiny flexdashboard


【解决方案1】:

也许你正在寻找这个:

```{r}
global <- reactiveValues(df = df)
observeEvent(input$data1, global$df[1, 1] <- input$data1)
renderPrint(global$df)
```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    相关资源
    最近更新 更多