update: Brandon Bertelsen's answer:
布兰登的回答产生了以下结果.
我目前的做法是用Rstudio编译成html,在chrome中打开html文档,然后将html文档复制并粘贴到gmail中.这很有效,请看以下要点:https://gist.github.com/nelsonauner/a68b5a808c232ce7817e
Original question:
有没有一种简单的方法可以将R标记文档作为邮箱正文发送,从而使邮箱正文看起来与使用Rstudio的"Knit HTML"的结果相似?
下面是一个使用knitr
、rmarkdown
和mailR
的基本可复制示例
实例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)
两封邮件都发送成功.
这封邮箱如下所示:
rmarkdown邮件是这样的.(注意,它还包括一堆javascript文件——我想我必须编写一些脚本才能删除它们)
但这两个版本都不如Rstudio的"Knit as HTML"报告好看,该报告如下所示:
有什么建议吗?
我认为一个真正的解决方案可能需要对html文件进行一些后处理,在删除javascript文件的同时,以邮箱友好的方式合并css样式.
现在,我将使用knitr
美元的套餐.
如果有什么不清楚的地方,请告诉我,我会改进这个问题.
相关SO帖子:
In R is there any way to send an RMarkdown v2 html file as the body of an email