Обновить таблицу из файла в flexdashboard - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь создать блестящую / flexdashboard, в которой таблицу можно обновить, загрузив новый файл.

Код ниже представляет собой простую панель мониторинга с таблицей (с использованием formattable), которая сначала загружается снабор данных.Пользователь может использовать виджет загрузки файлов для загрузки нового набора данных - я хотел бы понять, как обновить таблицу после завершения загрузки.Должно ли это быть сделано в событии new_df_tbl?

Пример является автономным и может использоваться непосредственно в Rstudio.

---
title: "Basic"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: fill
runtime: shiny
---

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

```{r}
df <- data.frame(
  x = rnorm(100),
  y = rnorm(100)
)
```

```{r}
df_tbl <- reactive({
    df %>% select(x, y) # do some stuff here but for simplicity we do nothing
})
```



Sidebar {.sidebar}
=======================================================================

```{r}
fileInput("file1", "Choose CSV File",
                multiple = FALSE,
                accept = c("text/csv",
                         "text/comma-separated-values,text/plain",
                         ".csv"))

br()

actionButton(inputId = "apply", label = "Apply", icon = icon("play"))
```

```{r}
rv <- reactiveValues(data = NULL)
rv <- df

observeEvent(eventExpr = input$apply, 
  handlerExpr = {
      req(input$file1)
      file <- read_csv(input$file1$datapath)
      rv$data <- file
  }, ignoreNULL = FALSE)
```


Main
=======================================================================

Column
-----------------------------------------------------------------------

### Table

```{r}
renderFormattable({
  formattable(df_tbl())
})
```
...