有条件地输出带有内联 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")
```
我尝试使用 print
、paste
和 cat
。我厌倦了结果 asis
和 markup
。但输出始终是 - '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))
)
```
在我的 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")
```
我尝试使用 print
、paste
和 cat
。我厌倦了结果 asis
和 markup
。但输出始终是 - '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))
)
```