内联文本 - 从表中选择变量

时间:2018-04-12 14:45:22

标签: r r-markdown kable

我有一张表格如下:

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.

这是我一直做的事情的一个非常简单的例子,所以如果有一种方法没有通过使用过滤器创建新表,这将节省我很多时间。

2 个答案:

答案 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)`