我确信这应该在某个地方得到解答,但我找不到它......
我正在尝试开发一个由rmarkdown::render_site()
函数呈现的网站,我无法在构成网站的Rmd文件之间“共享”加载的数据帧。
我的档案:
_site.yml:
name: "my-website"
navbar:
title: "My Website"
left:
- text: "Home"
href: index.html
- text: "About"
href: about.html
index.Rmd:
---
title: "My Website"
---
Hello, Website!
```{r}
library(data.table)
d <- copy(mtcars)
summary(d)
```
about.Rmd:
---
title: "About This Website"
---
More about this website.
```{r}
summary(d)
```
并通过以下方式呈现网站:
rmarkdown::render_site()
将以下错误作为输出:
|...................... | 33%
ordinary text without R code
|........................................... | 67%
label: unnamed-chunk-1
Error in summary(d) : object 'd' not found
很明显,渲染过程中对象d对about.Rmd文件不可用... 关于如何解决这个问题的任何想法? 提前谢谢!
答案 0 :(得分:0)
尝试将其添加到第一页的块中
```{r,cache=TRUE}
library(data.table)
d <- copy(mtcars)
summary(d)
```
这应该在你的html文件夹中创建一个缓存文件夹,并在同一个rMarkdown文档中将数据从chunk变为chunk。它允许您调用块中的数据,并在整个降价体中使用内联r语句。
答案 1 :(得分:0)
你可以把
library(data.table)
d <- copy(mtcars)
在global.R
文件中,并在需要source()
时使用d
函数。
答案 2 :(得分:0)
@COLO 在评论中写道
<块引用>“事实上,我应该放在 global 中的脚本有很多行,数据处理一个大数据帧,所以我不想像我拥有的 Rmd 文件一样处理它。”
您可以使用 saveRDS
将数据处理的输出保存到 RDS 文件中。然后在所有其他笔记本中使用
df <- readRDS("prepared_data.rds")
为分析准备好数据后,读取 RDS 文件往往比读取 CSV 文件或等待数据库查询快得多。