整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

R Markdown,让你的报告变得更有效率

R Markdown,让你的报告变得更有效率

互式文档是一种创建Shiny apps的新途径。交互式文档是一种包含Shiny控件与输出的 R Markdown文件, 你可以在 markdown中写报告,并且作为app来启动它。

本文主要阐述如何使用R Markdown写报告。

与本文配套的文献 Introduction to interactive documents, 将向你展示如何通过将R Markdown 报告转变成为带有Shiny组件的交互式文档。

R Markdown

R Markdown是通过R语言制作动态文档的文件格式。R Markdown文档在markdown中完成,其中包含嵌入的R代码,如下图:

---
title: R Markdown
output: html_document
---

This is an R Markdown document. Markdown is a simple formatting syntax which allows you to author HTML, PDF, and MS Word documents. For more details on how to use R Markdown, see <http://rmarkdown.rstudio.com>.

When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

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

You can also embed plots:

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

Note that the `echo=FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.

R Markdown文档编辑需要 rmarkdown包,rmarkdown安装需要RStudio编辑器环境,但是你可以以github途径来下载rmarkdown,并安装。

devtools:install_github("rmarkdown", "rstudio")

R Markdown是资源代码丰富并高可用的文件,你可以将通过一下两种方式改变R Markdown文件格式。

  1. knit

先,我霸都傲天申明绝对是完全免费,不会在文章中推销什么云服务器,虚拟主机等。而且操作步骤上手简单,即使非IT人员也很容易实现。

局限:只能是静态网站的个人网站
面向读者:所有人包括非IT人员

首先如果你无法理解“静态网站”的话,那么相信我,静态网站就可以满足你大部分个人网站的需求。其次这篇文章更多的是面向非IT人员,因为我写这篇文章的原因是我的一个同学的故事:

我同学小A是律师,他想把自己处理过的一些案件记录在自己的个人博客中,他已经注册了公众号。但是他始终觉得有个网站或者个人博客会显得专业一些,而且还可以展示自己的个人履历,把这个网站链接放在公众号里面会显得跟专业一些。“好吧,我明白了~”

而且学会自己搭建一个静态网站是一个很酷的事情,你可以做一些很漂亮的宣传页,或者表达自我主张的个人博客,或者在我以前的文章里面给别人做一个网页版生日祝福or纪念日等等。

所以开始吧~

前言

首先我们要用到的工具是著名的开源社区Github,我们做的静态网站最终要托管在上面,这个功能叫做“Github Pages”,是一项免费的静态文件部署服务。

虽然Github是国外的网站,但是在国内可以访问并且速度还不错!

有人担心,如果以后Github被墙了怎么办?
放心,即使被墙了,你学会如下的操作依然可以在类似的国内平台,例如码云等

1.申请Github账号

(如果有账号请直接登录然后跳转到教程下一步)

访问Github,点击SIGN UP按钮。(Sign in是登录的意思,应该都很好理解)还有Github是全英文的,没有中文的哦亲,但这不影响我们使用的。

注册很简单,只需要用户名,密码,邮箱即可,不需要手机号。(对了,用户名用一个酷一点或者有意义一点的,因为它会出现在你的网址中)

注册填写Github用户名密码邮箱

接着,Github会问你是否需要付费使用。这里选择不用,因为Github提供的免费服务已经能满足大部分人包括开发者的需要了。付费服务主要是面向团队以及企业。

后面还会有一些步骤,大概意思就是问你想用Github做什么,你对Git的熟练程度,(感觉像是moba游戏新手调研都会这么做)因为Github网站迭代的原因可能会稍有不同。比如笔者这里试的时候是这样子的。

然后Github会给你注册的邮箱发送一个确认链接,请点击链接确认,不激活的话是无法正常使用Github的服务的。这个是Github的反爬虫系统。(题外话:Github的反爬虫系统很强很强!)

如果收件箱没有看到,那么不用想了,一定在垃圾箱里面!

到这里我们的注册就完成了。

2.创建一个仓库

接下来我们要创建一个仓库,仓库就是保存代码的地方,也就是保存网站的地方。这里我们做一个最简单的网站:个人简历。

1,首先点击“Your repositories”,查看个人全部仓库,第一次肯定是空空如也啊。

2,接着我们新建一个仓库

3,这一步很重要,仓库的名字不可以随便写,必须是 <我的名字>.github.io

比如我注册的名字是 zhihu1,所以这里我创建的仓库的名字必须是 : http://zhihu1.github.io

4,接着下一步页面会比较复杂,你会看到一大堆看不懂的东西,其实那些事git操作提示。如果你熟练git的话就知道了。不过我们不管这些,我们只需要创建一个新的文件就行啦!

5,新文件的名字不可以乱写哦,必须是 index.html,这里大家都一样都写这个。(题外话:静态http文件托管服务的默认访问文件就是index.html)

可以参考笔者的内容如下,改成你自己的介绍哦~

<p>Hello 大家好</p>
<p>我是霸都丶傲天,这是我的个人网站。 </p>
<p>很高兴你来到这里, 你可以在以下的网站找到我</p>

<ul>
  <li> <a href="https://www.zhihu.com/people/AJLoveChina">知乎</a> </li>
  <li> <a href="http://hejie.nigeerhuo.com">我的博客(已经不更细了,现在在知乎写文章)</a> </li>
</ul>

3.查看网站的网址

到这里,我们一个最简单的个人网站的代码就完成了。接下来最重要的一步,我们需要知道网站的链接啊,只有这样,别人才能访问我们的网站呀。

1,点击settings

2,然后往下翻找到 Github Pages, 看到绿色提示,后面的链接就是你的网站地址了,打开看看吧~

Tip:很多老铁评论说这里看不到绿色框框,没有URL。那是因为你的仓库名称与用户名不一致,不过不用担心,也是有办法的,看下面的第二张图片。

第一张图片

第二张图片(这里我设置成小图防止误导正常老铁, 点击可以放大图)

3,点开网站看一下

完成!

其实细心的同学会发现,其实我们的网站地址和我们写的仓库名称是一样的,是滴!而且非常有个性的是我们的名字还出现在网站地址中。

笔者的Github仓库&&网址:Git仓库地址 http://zhihu1.github.io/


本来到这里这个教程已经结束了,但是我想有的同学肯定是不满意的。首先你的这个网站做的太简陋了吧,不是我想要的那种!

那好,其实学会这个教程就可以做下面两个非常炫酷的小站点了,一个是生日祝福,一个是爱情纪念日。都是很有意义、很温馨的题材哦:)

霸都丶傲天: 改改数据,为心爱的人做一个超具创意的网页生日祝福吧~霸都丶傲天:5分钟做一个免费的网页爱情树,快快学习发给自己的女朋友吧(微信QQ都可以查看哦)^_^霸都丶傲天:告白气球? 圣诞节的创意网页小礼物不了解一下么?

所以是这样子的,我没有演示复杂的网页是因为它需要写的代码太多了,许多第一次接触Github的老铁,或者以前从来没接触过HTML的人就会有点陌生。

是的,这里我们提到了HTML,它就是网页的描述语言,对HTML感兴趣我推荐这些最好的免费自学网站。

  • 国内的w3school (国内的w3School这两年商业元素越来越浓厚了,不怎么推荐了)
  • 国外的w3school 网络条件好,并且英语还不错的同学建议看国外的
  • 但是业界最专业的的自学网站应该是这个 https://developer.mozilla.org/en-US/docs/Web/HTML (Mozilla基金会出的mdn文档,绝对的大牛出品,质量把控)


后面一段时间,我还会出一些更高级的个人网站教程。所谓更高级不是说写一大堆代码,而是如何使用业界非常流行的静态网站生成器来做个人网站。静态网站生成器的英文说法叫做“static-site-generator”。我们只需要关注创作内容即可,这些工具可以帮助我们把网页做的非常绚丽,非常的awesome!

Github上面有专门的相关主题,并且非常火,这里我给个截图

Github上面有超过1500个静态网站生成工具
最后,这篇文章的初衷还是写给对编程知识不懂但是又感兴趣的老铁,以及刚上大学计算机系的后起新秀,做一个个人网站可以很大程度提高自己学习编程的动力,所以我觉得这是很有意义的一件事情。

感谢评论里的老铁各位的建议,有些老铁看了可能会疑惑,我来解答吧:

  • wordpress确实是业界做博客类网站,或者也叫内容型网站的首选。它适合不会编程但是又想做出很绚丽博客的人,它有很多模板可以选择,每一个模板就是一种风格样式。它不在本次文章的推荐中是因为,使用wordpress需要购买主机或者wordpress专用虚拟主机,是需要付费的。
  • @joey大佬提到了“用七牛,阿里之类的对象存储服务做免费的cdn静态网站”。确实在目前来看它们是比Github Pages可能更优秀的选择。但是它们有推销的嫌疑,所以我没有推荐这些,类似还有腾讯的COS对象存储,它们都有免费的额度,大概是一个月免费15GB流量,最高免费10GB文件存储。对于大部分人来说这些是足够的了。但是它的缺点也很明显,未来可能需要付费以及需要自己购买域名(当然你也可以使用它免费提供的域名,很长很难记!因为它看起来像这样子 Ukdalkdkl-china-shanghai-1。xxx。com )

当然如果对上面感兴趣的老铁也可以在评论里面说,我也可以出类似的文章说一下怎么做的,用起来都很方便。

最后的最后,有什么问题直接评论即可,拜拜┏(^0^)┛,楼主镇楼。

本来是一直用jupyter跑R的,自己看过程什么的都没有问题,但是身边的同学大多数用的都是spss,很尴尬,想把自己的结果分析过程给同学瞅瞅就很麻烦,今天发现了一个可以帮助我的利器R Markdown。

尝试着给大家写写,关注我!你不会后悔的,嘿嘿。

什么是R Markdown

介绍R Markdown之前先介绍Markdown!

MarkDown是一种轻量级的【标记语言】,目前也被越来越多的写作爱好者,撰稿者广泛使用。一旦熟悉MarkDown这种语法规则,就可以享有一劳永逸的排版效果。

而R Markdown就是将R代码和Markdown整合而成的帮助我们排版或者出版R代码的。利用R Markdown我们可以将自己的数据分析过程转换为PDF或HTML格式,方便我们快速做总结或书写文档和与他人共享。

为什么要用R Markdown

R markdown可以记录你使用的raw data,记录你处理和清理数据的每一个步骤的code,可以显示你使用的挖掘算法和可视化图表,可以完整的说明整个task的思路和最终得到的结果。

R markdown可以让你更好的展示或者报告分享自己的数据分析过程,哪怕你的受众并不使用R也无所谓,Markdown可生成包括HTML、PDF、WORD、PPT等各种形式的内容。

应用实例

  • 第一步,新建R Markdown


如上图,新建一个text file,因为今天是第一次写R Markdown,我就没有直接新建R Markdown了,是为了大家更好理解。大家也可以选择直接新建R Markdown,不过你会发现新建的是一个演示文档。

新建text file完成后将其保存,如下图以Rmd为扩展名进行命名,此时我们的R Markdown就建好了。


  • 第二步,在R markdown中写代码

为了更好的给大家说明,此次依然用一个很简单的R project作为例子,譬如,我们在console中做了如下分析

data("cars")
str(cars)
summary(cars)
plot(cars)

hist(cars$speed)
boxplot(cars$dist)

上面的代码都超级简单,但是不懂R的人也看不明白。

好了,现在我想把我所做的上面的工作分享给我的同学,可是人家都不用R,也看不明白R代码,怎么样能让他知道我的代码的运行过程和究竟做了什么事呢,让我们一起用R markdown来美观清晰又易懂的展示我们的工作吧。

#Codewar 的第一个markdown,欢迎关注哦

**第一部分**
```{r}
data(cars)
str(cars)
summary(cars)
plot(cars)
```

***第二部分***
```{r}
hist(cars$speed)
boxplot(cars$dist)
```

车车的平均速度是 `r mean(cars$speed)`.

#完毕,欢迎关注codewar!

上面就是我写的我的第一个R markdown代码,这段markdown代码完全重复了上面代码块中的分析过程,具体细节稍微解释一下,以后的文章会详细解释,欢迎关注:比如说#这个符号就是标题,```{r}就是代码块,`r就是行内代码,等等,R markdown还有很多妙用,我也正在学习,以后慢慢给大家分享。

上面的markdown代码运行后点击Knit你可以选择输出为html,pdf,ppt等等,比如我选择输出为html就是下图中的样子,这下不用R的同学也可以非常清楚的知道你的分析过程是怎样的啦。


其余的markdown的用法,大家大可以参考R自带的参考文件,当然你自己不愿意看的话,关注我就好啦,我讲给你听。

小结

今天很简单的给大家写了R markdown的使用,其实R markdown还有很多东西我自己也不会正在学,以后会慢慢写出来,同时今天文章中的markdown代码我也一并上传到百度云了,大家关注后私信自取,感谢大家耐心看完。发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,用到的数据集也会在原文中给出链接,你只要按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么基础没有从零学Python和R的,加油。

(站外链接发不了,请关注后私信回复“数据链接”获取本头条号所有使用数据)

R数据分析:如何用R做数据模拟