参数化 RMarkdown 不过滤 R 中的参数

Parameterized RMarkdown does not filter parameter in R

我正在测试使用参数化 RMarkdown,使用 c 作为参数。我正在使用 Knit with parameters 选择 ab,或者没有默认选择 a。 我希望获得 2 或 5 作为平均值,但我总是获得 3.5,这是全局平均值。 我在这里做错了什么?

---
title: "Parameterized RMarkdown"
output:
  html_document: default
params:
  c: "a"
---

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


```{r mean, echo=FALSE}
df <- tibble(c = c("a", "a", "a", "b", "b", "b"),
             x = c(1, 2, 3, 4, 5, 6))
mean(df$x)
```

我们可以在提取的'params'上添加一个filter,得到'x'

列的mean
library(dplyr)
df %>% 
    filter(c == params$c) %>%
    summarise(x = mean(x, na.rm = TRUE))

或使用base R来完成

with(df, mean(x[c == params$c], na.rm = TRUE))