update: Brandon Bertelsen's answer:

布兰登的回答产生了以下结果.

我目前的做法是用Rstudio编译成html,在chrome中打开html文档,然后将html文档复制并粘贴到gmail中.这很有效,请看以下要点:https://gist.github.com/nelsonauner/a68b5a808c232ce7817e

enter image description here

Original question:

有没有一种简单的方法可以将R标记文档作为邮箱正文发送,从而使邮箱正文看起来与使用Rstudio的"Knit HTML"的结果相似?

下面是一个使用knitrrmarkdownmailR的基本可复制示例

实例Rmd

---
title: "Report for email"
output: 
  html_document: 
    self_contained: no
---

```{r}
summary(cars)  
```

You can also embed plots, for example:

```{r, echo=FALSE}
plot(cars)
```

我使用self_contained: no,因为默认的base64编码不适用于mailR(易慧在this SO post中推荐)

编织和发送.R

# compile using rmarkdown
library(rmarkdown)
rmarkdown::render("实例Rmd")

library(mailR)

send.mail(from = "me@gmail.com",
          to = "me@gmail.com",
          subject = "R Markdown Report - rmarkdown",
          html = T,
          inline = T,
          body = "example.html",
          smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "me", passwd = "password", ssl = T),
          authenticate = T,
          send = T)

#compile using knitr
library(knitr)
knit2html("实例Rmd",options="")

send.mail(from = "me@gmail.com",
          to = "me@gmail.com",
          subject = "R Markdown Report - knitr",
          html = T,
          inline = T,
          body = "example.html",
          smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "me", passwd = "password", ssl = T),
          authenticate = T,
          send = T)

两封邮件都发送成功.

这封邮箱如下所示:


knitted and emailed report


rmarkdown邮件是这样的.(注意,它还包括一堆javascript文件——我想我必须编写一些脚本才能删除它们)


enter image description here


但这两个版本都不如Rstudio的"Knit as HTML"报告好看,该报告如下所示:

enter image description here

有什么建议吗?

我认为一个真正的解决方案可能需要对html文件进行一些后处理,在删除javascript文件的同时,以邮箱友好的方式合并css样式.

现在,我将使用knitr美元的套餐.

如果有什么不清楚的地方,请告诉我,我会改进这个问题.

相关SO帖子:

In R is there any way to send an RMarkdown v2 html file as the body of an email

mailR: how to send rmarkdown documents as body in email?

推荐答案

Updated Dec 2019

R Studio发布了一个特定于邮箱的软件包blastula.我发现这在为邮箱内联CSS方面做得很好.

https://github.com/rich-iannone/blastula

R相关问答推荐

按列A中的值进行子集化,并获得列C中对应于R中列B的最大值行的值?使用循环自动化此操作

在图内移动y轴上的标签

从字符载体创建函数参数

棒棒糖图表大小和线宽参数故障标签未出现

我可以截断10字节的扩展数并转换为8字节的double吗?

按崩溃类别分类的指数

多个ggpredicate对象的平均值

使用预定值列表将模拟数量(n)替换为rnorm()

x[[1]]中的错误:脚注越界

如何利用模型函数在格图中添加双曲/指数曲线

更改默认系列1以更改名称

在R中使用download. file().奇怪的URL?

迭代到DataFrame列并获得成对的值列表(col1->;col2、col2->;col3、col3->;col4等)的正确方法.

从非重叠(非滚动)周期中的最新数据向后开窗并在周期内计数

在R中,我如何使用滑动窗口计算位置,然后进行过滤?

为什么在BASE R中绘制线条时会看到线上的点?

根据纬度和距离连接两个数据集

在纵向数据集中创建新行

R中Gamma回归模型均方误差的两种计算方法不一致

优化从每个面的栅格中提取值