在我的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代码逐字显示。
答案 0 :(得分:3)
问题中显示的代码块的问题在概念上而不是技术上:块的内容被解释为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))
)
```