【问题标题】:Uploading a File in a flexdashboard在 flexdashboard 中上传文件
【发布时间】:2021-03-08 10:15:50
【问题描述】:

我正在尝试在 flexdashboard 中添加一个输入文件,但我有点困惑。之前我创建了一个函数来生成绘图,然后我使用该函数调用函数 renderPlot 以便在仪表板中获取绘图。

R flexdashboard and shiny interactive plot

但是现在,如果我创建一个函数来读取文件,我不明白如何调用它。

如何遵循相同的想法,创建一个函数,在仪表板中使用输入文件读取文件,然后在仪表板中执行分析。

我已经生成了这段代码

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

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

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


```

有了这个,我获得了一个带有文件输入的侧栏。但是如何在任何分析中使用该上传的文件并在仪表板中显示结果?

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

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

Column {.sidebar}
-----------------------------------------------------------------------
```{r, echo = FALSE}
fileInput("file1", "Choose CSV File",
                multiple = TRUE,
                accept = c("text/csv",
                         "text/comma-separated-values,text/plain",
                         ".csv"))
df_reac <- reactive({
  read_xlsx(file1$datapath)
})

```

Column{data-width=300}
-----------------------------------------------------------------------
```{r, echo = FALSE}
renderTable(df_reac)


```

【问题讨论】:

  • 请将代码发布到相关函数,以及渲染和UI
  • 完成¡ 我没有 UI,因为我使用的是 flexdashboard。对于基本的仪表板来说似乎很容易。
  • 在服务器中使用data&lt;-read.csv(file1$datapath)调用文件,然后你可以随意使用data。反应式环境将在这里发挥作用,因此请务必阅读这些内容。
  • 我不确定服务器是什么,因为 flexdashboard 只使用一个文件。这是服务器?
  • 对不起,关于服务器的部分请忽略。将数据读入 r Global

标签: r input flexdashboard


【解决方案1】:

这是一个老问题,但这段代码可以让您在 Flexdashboard 上上传文件:

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

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

    ```{r}
    dataset <- eventReactive(input$file1,{
      dataset <- read.csv(input$file1$datapath)
    })
    ```

    # Column {.sidebar}

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

    # Data 

    ## Row

    ### Table 1 - Show the data recently acquired

    ```{r}
    renderTable({
      dataset <- dataset()
      dataset
    })
    ```

主要问题是创建一个反应函数,因为在上传文件之前您不知道数据集。反应值为input$file1

【讨论】:

    猜你喜欢
    • 2021-10-17
    • 2019-12-27
    • 1970-01-01
    • 2019-02-13
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    相关资源
    最近更新 更多