gpt4 book ai didi

r - 以不同顺序评估 Rmd 中的代码块

转载 作者:行者123 更新时间:2023-12-05 05:49:12 26 4
gpt4 key购买 nike

我有一个代码块“data_prep”,它包含在我的 Rmd 文件的末尾,但我想在开头(标题 1 之后)显示它的结果。问题是代码块“data_prep”需要在名为“data_summary”的 block 之前运行(data_summary 取决于 data_prep)。

如何更改代码块的评估顺序?

---
title: "Untitled"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE)
```

```{r}
library(dplyr)
```

# 1

```{r data_summary, ref.label='data_prep'}
```

# 2

```{r}
df_1 <- mtcars %>% sample_n(10)
```

# 3

```{r data_prep, results='hide'}
mtcars_summary <- df_1 %>%
group_by(cyl) %>%
summarise(hp_avg = mean(hp))

mtcars_summary
```

我还尝试了以下两种变体:

```{r data_prep, echo = TRUE}
```

```{r data_summary, dependson='data_prep'}
```

最佳答案

dependson 不是这样工作的。它用于指定 代码块所依赖的代码块,因此如果被缓存,它会在这些依赖项更新时更新。然而,RMarkdown 有一种方法可以使用缓存来做你想做的事。如果需要,我们可以缓存任何 block 并在更早的 block 中调用它。仅修改示例中的两个相关 block (其余部分未修改),我们可以:

```{r data_summary}
knitr::load_cache("data_prep", "mtcars_summary")
```
## # A tibble: 3 × 2
## cyl hp_avg
## <dbl> <dbl>
## 1 4 84.3
## 2 6 116.
## 3 8 191

```{r data_prep, results = "hide", cache = TRUE}
mtcars_summary <- df_1 %>%
group_by(cyl) %>%
summarise(hp_avg = mean(hp))

mtcars_summary
```

关于r - 以不同顺序评估 Rmd 中的代码块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70685049/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com