将数据动态加载到 rmarkdown html 输出
Dynamically load data into rmarkdown html output
有没有办法在打开 html 输出?
例如,我有这个简单的 Rmarkdown 文件,它生成一个图(在 svg 中)和一个 table:
---
title: "test"
output:
html_document:
self_contained: false
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(dev = "svglite", fig.ext = ".svg")
library(svglite)
library(DT)
```
```{r, echo=FALSE}
DATA <- data.frame(a = 1:5, b = 6:10)
plot(DATA)
datatable(DATA)
```
有没有办法将数据提供给 html 文件,这样当数据发生变化并且我再次打开它时,绘图和 table 会自动更新 而无需 必须渲染 Rmarkdown 脚本?
是的,这是可能的。您可以使用本地数据或存储在某处的数据——例如 Google 表格。
步骤 1) 将 runtime: shiny
添加到您的 YAML。这并没有使它“闪亮”,但确实使它充满活力。
更新 YAML:
---
title: "test"
output:
html_document:
self_contained: false
runtime: shiny
---
步骤 2) 使用函数调用您的数据。
```{r giveMe,echo=F}
giveMeData <- function(){
read.csv("./../_data/carData.csv")
}
dataGiven <- giveMeData()
```
无论是在 RStudio 的查看器窗格中还是在您的浏览器中,您只需要在更新数据后刷新视图或页面。
为了测试这个,我使用的唯一其他代码如下:
<!--- inline R code to show the data --->
The column names are `r names(dataGiven)`.
There are `r nrow(dataGiven)` observations in this data.
```{r itsGiven, echo=FALSE}
# plot the data
plot(dataGiven)
datatable(dataGiven)
```
我把列名改成了“Displacement”并刷新了(没有重新运行,运行,knit,只是刷新)
有没有办法在打开 html 输出?
例如,我有这个简单的 Rmarkdown 文件,它生成一个图(在 svg 中)和一个 table:
---
title: "test"
output:
html_document:
self_contained: false
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(dev = "svglite", fig.ext = ".svg")
library(svglite)
library(DT)
```
```{r, echo=FALSE}
DATA <- data.frame(a = 1:5, b = 6:10)
plot(DATA)
datatable(DATA)
```
有没有办法将数据提供给 html 文件,这样当数据发生变化并且我再次打开它时,绘图和 table 会自动更新 而无需 必须渲染 Rmarkdown 脚本?
是的,这是可能的。您可以使用本地数据或存储在某处的数据——例如 Google 表格。
步骤 1) 将 runtime: shiny
添加到您的 YAML。这并没有使它“闪亮”,但确实使它充满活力。
更新 YAML:
---
title: "test"
output:
html_document:
self_contained: false
runtime: shiny
---
步骤 2) 使用函数调用您的数据。
```{r giveMe,echo=F}
giveMeData <- function(){
read.csv("./../_data/carData.csv")
}
dataGiven <- giveMeData()
```
无论是在 RStudio 的查看器窗格中还是在您的浏览器中,您只需要在更新数据后刷新视图或页面。
为了测试这个,我使用的唯一其他代码如下:
<!--- inline R code to show the data --->
The column names are `r names(dataGiven)`.
There are `r nrow(dataGiven)` observations in this data.
```{r itsGiven, echo=FALSE}
# plot the data
plot(dataGiven)
datatable(dataGiven)
```
我把列名改成了“Displacement”并刷新了(没有重新运行,运行,knit,只是刷新)