在Rmarkdown表格中包含链接(pdf)

时间:2016-01-29 06:44:03

标签: r pdf pdf-generation r-markdown

我正在尝试将链接添加到“kable”中的特定网页。在创建pdf时,Rmarkdown中的表格。

该表有4列,我希望链接位于第二列,当前包含字符串。表格的输出如下:

    knitr::kable(ind_rank_table_final,row.names = FALSE,caption = "Industry Rank",align = rep("l",ncol(ind_rank_table)))

2 个答案:

答案 0 :(得分:8)

使用paste0,您可以在数据框中构建markdown格式的网址,然后将其传递给kable,如下所示:

---
output: pdf_document
---
```{r}
# some urls
urls <- rep("https://stackoverflow.com/", 10)
# use paste0 to compose markdown-formatted hyperlinks
mtcars$mpg <- paste0("[", mtcars$mpg, "](", urls, ")")
# print the table, with hyperlinked text
knitr::kable(head(mtcars))
```

你可以在mpg栏中看到结果,蓝色文字,如果我将鼠标悬停在上面,我会看到网址:

enter image description here

如果你想打印表格中的网址,并点击它们,那么你可以这样做mtcars$mpg <- paste0("[", urls, "](", urls, ")")这样的事情:

enter image description here

这就是你要追求的吗?使用paste0对于对表执行各种操作非常方便,例如,combining multiple values in one cellapplying conditional formatting (like bold for significant values)

答案 1 :(得分:0)

对于那些使用 bookdown 编织到 PDF 的人,@Ben 的答案不会让您完全了解。正如@mavericks 所指出的,您仍会看到全文([21](https://stackoverflow.com/),与@maverick 的示例保持一致)。

要解决此问题,请将参数 format = "pipe"format = "simple" 添加到 kable()。 “latex”选项在生成工作链接时将像@maverick 的示例一样显示。 kable() 的默认行为是自动确定格式,我猜在 bookdown 文档的情况下必须是“latex”?

我不知道,但这应该会为 bookdown 用户生成@Ben 的第一个表:


输出:bookdown::pdf_document2

# some urls
urls <- rep("https://stackoverflow.com/", 10)
# use paste0 to compose markdown-formatted hyperlinks
mtcars$mpg <- paste0("[", mtcars$mpg, "](", urls, ")")
# print the table, with hyperlinked text
knitr::kable(head(mtcars), format = "simple")