【问题标题】:How To Insert Images Into Table in R Markdown如何在 R Markdown 中将图像插入表格
【发布时间】:2018-04-30 21:56:50
【问题描述】:

所以我有一个数据框

employee <- c('John Doe','Peter Gynn','Jolie Hope')
pic_url <- c('url_Johns Picture', 'url_Peters Picture', 'url_Jolies Picture')

df <- data.frame(employee, pic_url)

看起来像这样

       employee         pic_url

1    John Doe       url_Johns Picture
2    Peter Gynn     url_Peters Picture
3    Jolie Hope     url_Jolies Picture

当我尝试基于此表编写 HTML 时,我会首先在 Rmd 文件中获取 R 文件并使用

 source(myrfile.R)
 df %>% kable()

但这给了我错误,经过长时间的努力,我认为这是因为图像 url 链接不应该在代码块中。但是我想不出如何在不使用代码块的情况下将图像包含在我的表格中。我正在学习如何使用 knitr,所以如果你们能告诉我一种使用 knitr 或基本 R 的方法,我将不胜感激。提前谢谢你!

【问题讨论】:

  • 您应该将图像放在以降价形式编写的表格中,而不是放在代码块中。运行kable,复制其输出并将其放入文档中,而不是代码块内
  • @CalumYou 不! kable 的全部意义在于能够从代码块中返回表格。他只需要正确格式化他的链接来显示图像。尝试data.frame(a = 1:3, image = paste0('![](http://oganm.com/api/t2i?t=',1:3,')')) %&gt;% knitr::kable() 并将内容保存在代码块中。
  • @OganM:如果我想使用本地图像 (PNG) 怎么样?您知道适用于 PDF 输出的解决方案吗?非常感谢!
  • 本地路径也应该可以。现在不能尝试,但据我所知 pdf 也应该没问题
  • 尝试了各种方法,但格式化并不容易,请参阅我的帖子:stackoverflow.com/questions/58204272/… 任何帮助都非常感谢!

标签: r r-markdown knitr


【解决方案1】:

您可以使用 knitr 和 pander 包来做到这一点。车图取自这里:https://car-from-uk.com/sale.php?id=55162&country=us;在我的工作目录中重命名为“rx4.jpg”。

rmarkdown 文档中的代码块:

library(knitr)
library(dplyr)
library(pander)

mtcars %>% 
  slice(1) %>% 
  mutate(
    pic = "rx4.jpg" %>% pander::pandoc.image.return()
    ) %>% 
  pander()

产生这个输出:

【讨论】:

  • 我知道你很久以前就回答了这个问题,但请原谅我的无知,我希望你能接受我的道歉,我只是出于某种原因才看到这个!非常感谢您的时间和帮助。
  • 没问题 :-)
  • 如何调整表格内的rx4图片大小,打印表格不带标题?
  • 您可以调整图像的大小(使用魔法或其他东西),并且 pander 包可能具有在没有 df 标头的情况下进行打印的选项。
  • @RobertMyles 它还在为您工作吗?我正在尝试,但在 HTML 中它返回:从第 11-26 行退出(teste_html.Rmd) TableExpand_cpp 中的错误(单元格,cols.width,justify,sep.cols,样式):函数 'Rcpp_precious_remove' 不是由包'Rcpp 提供' 调用:... pandoc.table.return -> paste -> table.expand -> tableExpand_cpp
猜你喜欢
  • 2016-05-06
  • 2014-09-29
  • 2017-01-03
  • 1970-01-01
  • 2020-11-14
  • 1970-01-01
  • 2018-10-15
  • 1970-01-01
相关资源
最近更新 更多