将Flexdashboard无功输入值分配给数据框单元格

时间:2018-08-09 16:17:59

标签: r shiny flexdashboard

我想将一些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")
})

```

1 个答案:

答案 0 :(得分:1)

也许您正在寻找这个:

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