我有一张表格如下:
table <- data.frame(number = 1:4,
percentage2 = c(16, 79, 3, 3))
在R Markdown中,我想显示以下输出文本:
At number 1 10% achieved
要做到这一点,我通常会像这样修改表格:
table %>%
filter (number==1) -> tab
然后我会写入RMarkdown:
At number 1 `r (tab$percentage2)`% achieved.
有没有一种方法可以在不应用过滤器来创建“标签”的情况下实现相同的结果?我本以为这样的东西会起作用,但事实并非如此。
At number 1 `r (tab$percentage2, number==1)`% achieved.
这是我一直做的事情的一个非常简单的例子,所以如果有一种方法没有通过使用过滤器创建新表,这将节省我很多时间。
答案 0 :(得分:2)
我不知道这会如何节省,但你可以避免使用
创建新表with(table, percentage2[which(number == 1)])
答案 1 :(得分:0)
使用函数为您进行格式化似乎最简单。这是一个基本布局,您可以为其他场景自定义:
displayresults <- function(df, num){
paste0("Number ", number, " ",
with(table, percentage2[which(number == num)]),
"% achieved")
}
然后使用:
`r displayresults(table, 1)`
将输出
Number 1 16% achieved
一个完整的例子:
---
output: pdf_document
---
```{r}
table <- data.frame(number = 1:4,
percentage2 = c(16, 79, 3, 3))
displayresults <- function(df, number){
paste0("Number ", number, " ",
with(table, percentage2[which(number == 1)]),
"% achieved")
}
```
`r displayresults(table, 1)`