R语言自动化报告格式——knitr

相关文献:

R语言自动化报告格式——knitr

资讯 | R Notebooks 即将发布

------------------------------------------------------------------------

一、背景

在R的世界里,凡是提到自动化报告,很多人就会想到Sweave,它已经诞生十几年了。它的主要设计思想来自于文学化编程(Literate Programming),这是Knuth大神提出来的一种编程范式,它与传统的结构化编程不同。

knitr (发音为:nit-ter)是由纯文本 (就像你正在阅读的) 和R代码交织在一起的文档文件. 用作者的话来说就是:“knitr 是一头灵活,快速的大象!” 你可能正在想……这玩意和数据挖掘有什么必然的关系呢? 使用knitr去学习数据挖掘乍看起来是一个奇怪的搭配,但确实是一条很好的学习途径。

有三个方面的原因: 这是学习R完美的途径。不一定每个人都是这样做的,但是knitr能让你运用学到的东西以及建立一个可重复生成报告的文件。 Knitr和RStudio集成是快速生成报告的最佳组合。简单地说,报告中有文字也有代码,Knitr就是通过markdown的语法在报告中该显示代码的地方显示代码,该显示运行结果(比如图表)的地方显示运行结果,这样整个报告文档就可以直接运行再次生成报告,而不需要把代码单独复制到控制台中执行,然后再把执行结果添加到文档中。

1、文学化编程也是编程

文学化编程(Literate Programming)是整个设计的核心思想,但过去的模式局限在“代码+文档”的简单模型上,knitr使得一份文档变得可编程。

[]

2、Markdown 是什么,如何写Markdown[]

Markdown 是一种轻量级标记语言。类似HTML,但是比html简单的多,我在文件夹中放了一个markdown的语法说明。 大家具体可以用一段时间学会。我们这里知道这么几点就可以了。标题,一个#后面跟一个空格代表一级标题,2个## 后面跟一个空格代表二级标题。

1. how are you 斜体

2. how are you 加粗

二、创建knitr文档

不要停下来! 通过以下5步,你就可以创建自己的第一个knitr文档:

l 打开 RStudio, 点击File > New File > R Markdown…创建一个新的R Markdown 文件

l 为这个文件起一个有意义的名字。

l 点击OK.

l 删除第二个"---"之后出现的文字

l 点击Knit HTML.

l 你的R Markdown代码应该像下面这样:

title: "Your Title"

output: html_document

在“knitting”你的文件后, 你应该会在查看器窗格看到下面的文字:

恭喜你! 你已经成功创建了第一个knitr文件!

三、相关代码——文本输出[]

在文本输出方面,knitr包支持以下功能:

l 代码高亮(highlight=TRUE),增强可读性,有无数的高亮主题可选,仅适用于LaTeX和HTML输出,MD文档在转为HTML文档之后可以用专门的JavaScript库去高亮代码

l 代码重排(tidy=TRUE),对那些不注意代码格式的人来说很有用,再乱的代码,到了这里也会变得相对整齐,本功能由formatR包支持

l 执行或不执行代码(eval=TRUE/FALSE),不执行的代码段将被跳过,原样输出源代码

l 显示/隐藏源代码(echo=TRUE/FALSE),甚至精确控制显示哪几段代码(echo取数值)

l 显示/隐藏普通文本输出或将文本输出以原样形式输出(results='markup', 'hide', 'asis')

l 显示/隐藏警告文本(warning=TRUE/FALSE)、错误消息(error)和普通消息(message)

l 显示/隐藏整个代码段的输出(include=TRUE/FALSE),比如我们可能想运行代码,但不把结果写入输出中

R语言自动化报告格式——knitr的更多相关文章

  1. Rmarkdown用法与R语言动态报告

    Rmarkdown用法与R语言动态报告数据分析用R语言非常便捷,因为R语言的社区强大,并且在不断更新和完善,提供了各种分析利器.Knitr和Rmarkdown包则是数据分析中的动态报告利器. 下面是一 ...

  2. R语言- 实验报告 - 利用R语言脚本与Java相互调用

    一. 实训内容 利用R语言对Java项目程序进行调用,本实验包括利用R语言对java的.java文件进行编译和执行输出. 在Java中调用R语言程序.本实验通过eclipse编写Java程序的方式,调 ...

  3. R语言自动化

    plyr dplyr reshape2(数据整理) boxplot.stats(异常值检测) ggplot2(可视化) knitr(生成报告)

  4. R语言中文社区历史文章整理(类型篇)

    R语言中文社区历史文章整理(类型篇)   R包: R语言交互式绘制杭州市地图:leafletCN包简介 clickpaste包介绍 igraph包快速上手 jiebaR,从入门到喜欢 Catterpl ...

  5. R语言-Knitr包的详细使用说明

    R语言-Knitr包的详细使用说明 by 扬眉剑 来自数盟[总舵] 群:321311420 1.相关资料 1:自动化报告-谢益辉 https://github.com/yihui/r-ninja/bl ...

  6. R语言XML格式数据导入与处理

    数据解析 XML是一种可扩展标记语言,它被设计用来传输和存储数据.XML是各种应用程序之间进行数据传输的最常用的工具.它与Access,Oracle和SQL Server等数据库不同,数据库提供了更强 ...

  7. R语言与格式、日期格式、格式转化

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言的基础包中提供了两种类型的时间数据,一类 ...

  8. 数据分析和R语言的那点事儿_1

    最近遇到一些程序员同学向我了解R语言,有些更是想转行做数据分析,故开始学习R或者Python之类的语言.在有其他编程语言的背景下,学习R的语法的确是一件十分简单的事.霸特,如果以为仅仅是这样的话那就图 ...

  9. RStudio:R语言编辑器

    RStudio:R语言编辑器 四窗口 左上:写代码,运行的方式是ctrl+Enter,或者用Run按钮 10 + 15 ## [1] 25 左下:终端,上面窗口的代码运行后会在这里显示,也可以直接在这 ...

随机推荐

  1. C#之DataTable转List与List转Datatable

    闲来无事,只有写代码啦,以下为DataTable转List与List转DataTable的两个方法,主要技术点用到了反射原理: /// <summary> /// 模型转换类 /// &l ...

  2. 单元测试系列:Mock工具Jmockit使用介绍

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6760272.html Mock工具Jm ...

  3. Java中常见的排序方法

    本博主要介绍Java中几种常见的排序算法: /* 排序方法的演示1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基 ...

  4. HDU 4315 Climbing the Hill [阶梯Nim]

    传送门 题意: 和上题基本一样:山顶可以有多人,谁先把king放到山顶谁就胜 并不太明白 #include <iostream> #include <cstdio> #incl ...

  5. BZOJ 3992: [SDOI2015]序列统计 [快速数论变换 生成函数 离散对数]

    3992: [SDOI2015]序列统计 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 1017  Solved: 466[Submit][Statu ...

  6. BZOJ 3771: Triple [快速傅里叶变换 生成函数 容斥原理]

    题意:n个物品,可以用1/2/3个不同的物品组成不同的价值,求每种价值有多少种方案(顺序不同算一种) [生成函数]: 构造这么一个多项式函数g(x),使得n次项系数为a[n]. 普通型生成函数用于解决 ...

  7. Go终端读写

    终端读写 操作终端相关文件句柄常量 os.Stdin:标准输入 os.Stdout:标准输出 os.Stderr:标准错误输出 终端读写实例: package main import ( " ...

  8. JavaWeb项目架构之NFS文件服务器

    NFS简介 NFS(Network File System)即网络文件系统. 主要功能:通过网络(局域网)让不同的主机系统之间可以共享文件或目录. 主要用途:NFS网络文件系统一般被用来存储共享视频, ...

  9. Python面向对象篇(2)-继承

    在发表本篇随笔的时候,距离上一次发已经有一个多月了,很多朋友私信我为什么不持续更新了,在这里先跟大家说声抱歉.因为年底的工作较为繁重,实在分不出精力,更重要的也是在思考后面进阶的部分要按怎样的顺序写, ...

  10. 给Ocelot做一个Docker 镜像

    写在前面 在微服务架构中,ApiGateway起到了承前启后,不仅可以根据客户端进行分类,也可以根据功能业务进行分类,而且对于服务调用服务也起到了很好的接口作用.目前在各个云端中,基本上都提供了Api ...