有条件地输出带有内联 R 块的段落

Conditionally output paragraph with inline R chunks

在我的 knitr 报告中,我有几个段落只有在满足某些条件时才相关。

在内联中包装所有内容 r ifelse(... 很快就会变得令人费解。

所以我尝试使用这样的代码块

```{r conditional_block, eval=nrow(data)>0, results="asis"}

print("For theese `r nrow(data)` people, the mean salary is `r paste(round(mean(data$sallary),2))` dollars per year")
```

我尝试使用 printpastecat。我厌倦了结果 asismarkup。但输出始终是 - 'raw' 内联 R 代码逐字显示。

问题中显示的代码块的问题是概念性的而不是技术性的:块的内容被解释为 R 代码。在 R 上下文中使用 knitr 的内联输出语法既不可能也没有必要。相反,应该使用普通的字符串函数来组成输出字符串:

```{r conditional_block, eval=nrow(data)>0, results="asis"}

cat(sprintf(
  "For these %d people, the mean salary is %.2f dollars per year.", 
  nrow(data), mean(data$salary))
  )
```