2016-01-29 65 views
3

我想在创建PDF时在Rmarkdown的'kable'表中包含指向特定网页的链接。在Rmarkdown表中包含链接(pdf)

该表有4列,我希望链接在第二列,其中目前包括字符串。表格的输出如下:

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

这是绝对可行的,但是问题是什么?请包括一个可重复的例子,例如我不知道'ind_rank_table_final'是什么,所以很难尝试提供帮助。 – daroczig

回答

5

使用paste0,您可以构建降价格式的网址,在你的数据帧,然后传递到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

如果你要打印的网址,在表,并让他们点击,然后you'de做这样的事情mtcars$mpg <- paste0("[", urls, "](", urls, ")")像这样:

enter image description here

是你以后在做什么?这种使用paste0是非常方便的做各种表格,例如,combining multiple values in one cell,和applying conditional formatting (like bold for significant values)

+1

如果您不想手动构建降价网址,您也可以使用pander套件中的'pandoc.link'(或'pandoc.link.return'来捕获结果,而不是发送到'stdout')。 – daroczig

+0

谢谢,你的'pander'软件包有这么多方便的功能! – Ben