• Posts tagged "echart4r"

Blog Archives

2022 微软Build After Party:文档革命:用R语言进行可重复性文档编写

跨界知识聚会系列文章,“知识是用来分享和传承的”,各种会议、论坛、沙龙都是分享知识的绝佳场所。我也有幸作为演讲嘉宾参加了一些国内的大型会议,向大家展示我所做的一些成果。从听众到演讲感觉是不一样的,把知识分享出来,你才能收获更多。

关于作者

  • 张丹,数据分析师/程序员/Quant: R,Java,Nodejs
  • blog: http://fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/meeting-ms-ignate-20221112

前言

工作上,我们会有大量的时间要写文档,会有一个人独自完全的文档,也会有多人配合一起完成的文档。有些文档是临时性的,很短很快就写完好,如日报周报等;有些文档就需要花很长时间仔细来写,如图书博客;有些文档需要多人配合来写,而且要非常注意排版等细节问题,如标书;有些文档一套模板,随着时间推移要调整数据输出,每月都要写,如月度报表等。

针对不同类的文档需求,word有时有显得不是那么的方便。Markdown作为可重复性文档的基础,可以编程的方式来编写文档,在多人合作、复杂排版、定时更新等维度上给我以极大的便利,再结合R语言中特征棒的工具支持,让写文档也能自动起来。

目录

  1. 我分享的主题:文档革命:用R语言进行可重复性文档编写
  2. 会议体验和照片分享

1. 我分享的主题:文档革命:用R语言进行可重复性文档编写

Markdown格式文档编写,已经从小众成为了一种主流的文档编写方式。R语言在可重复性文档编写领域中,有着重要的贡献,knitr和rmarkdown等包的支持,让文档编写有了非常舒服的使用体验。

基于rmarkdown的解决方案,不仅可以方便地实现Markdown所有功能,还支持嵌入R代码调用R语言本身计算功能,可嵌入动态表格,echarts图型,laTex数据公式,输出为HTML,WORD, PDF等多种格式。几十行代码,就能方便地实现自动化文档系统。

本次分享的PPT和代码,我上传到了github:https://github.com/bsspirit/new_document

我主要为分8个部分进行介绍:

  1. R语言可重复性文档解决方案
  2. 用R语言编写Markdown文档
  3. 嵌入R代码做模型计算和可视化
  4. 复杂数学公式laTex
  5. 动态表格flextable
  6. 动态图echarts4r
  7. 用pandoc输出Word,PDF,HTML
  8. 输出复杂的Word

本次分享的内容角度,先介绍了“可重复性文档”的定义,以「科学复制」为指导原则,科学复制是指在其他数据库上重复使用现有的研究材料,并将其视为稳健性测试或拓展原始研究工作。

详细介绍R语言在文档编写上面的各种支持包和RStudio各种方便的功能设计,包括Markdown文档编辑、数学公式laTex、动态表格flextable,动态图echart4r,输出pandoc,WORD排版officedown、RStudio的IDE工具使用。

2. 会议体验和照片分享

本次活动是微软直通车的活动,主要由微软MVP给大家进行一些技术分享,我们不讲虚的都是干活,边讲PPT,边撸代码。

本次会议报名页: https://www.huodongxing.com/event/4675047792223

2.1 会议主题

MVP嘉宾代表团:由 3位MVP组成,刘力科(主持人),张丹,郝冠军。

张丹,文档革命:用R语言进行可重复性文档编写PPT下载视频回看

主题简介:Markdown格式文档编写,已经从小众成为了一种主流的文档编写方式。

R语言在可重复性文档编写领域中,有着重要的贡献,knitr和rmarkdown等包的支持,让文档编写有了非常舒服的使用体验。

基于rmarkdown的解决方案,不仅可以方便地实现Markdown所有功能,还支持嵌入R代码调用R语言本身计算功能,可嵌入动态表格,echarts图型,laTex数据公式,输出为HTML,WORD, PDF等多种格式。几十行代码,就能方便地实现自动化文档系统。

郝冠军,.NET 7 新特性

多年微软最有价值专家,长年奋战在一线的开发者。目前关注于前端和微服务领域。Angular 技术热爱者,《ASP.NET 本质论》作者。

主题简介:在随之而来的下个月,.NET 7 即将正式发布。 我们将介绍 .NET 7 带来的 2 个新特性: 限流和编译优化。

限流是保护服务器资源的一种方式,用来控制对资源的访问,保持服务器的访问流量稳定在安全水平上,避免无法承担的负荷。.NET 7 对限流提供了内置支持。有多种限流方式,.NET 7 中提供了 4 种:1. 并发控制2. 令牌桶限制3. 固定时间窗口限制4. 滑动时间窗口限制。另外,我们还将介绍 .NET 对编译的优化改进。

2.2 相关照片

刘力科,微软MVP,本次主持人。

感觉线上的分享还是没有线下分享体验好,似乎少一些沟通的氛围。最后,整个分享结束,感谢组织者刘力科,感谢MVP项目负责人霸姐的支持。

转载请注明出处:
http://blog.fens.me/meeting-ms-ignate-20221112

打赏作者

用R编写markdown格式文档

R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。

R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。

要成为有理想的极客,我们不能停留在语法上,要掌握牢固的数学,概率,统计知识,同时还要有创新精神,把R语言发挥到各个领域。让我们一起动起来吧,开始R的极客理想。

关于作者:

  • 张丹,分析师/程序员/Quant: R,Java,Nodejs
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/r-markdown-rmarkdown/

前言

Markdown格式文档编写,已经从小众成为了一种主流的文档编写方式。R语言社区在可重复性文档编写领域中,有着重要的贡献。knitr和rmarkdown等包的支持,到后来在RStudio中直接集成的rmarkdown的功能,让R的广大用户有了非常舒服的markdown文档使用体验。

2015时,我就已经开始用markdown来写书稿,当时写了2篇关于在nodejs领域中使用markdown的文章,Marked高效的Markdown解析器用WebStorm编辑Markdown

时光证明了,小而美的好东西,真的会放大光芒。改变用户使用习惯,从小而美开始。

目录

  1. 创建一个rmarkdown文档
  2. 嵌入markdown文本
  3. 嵌入R代码
  4. 嵌入DT动态表格
  5. 嵌入echarts动态图
  6. 嵌入数学公式

1. 创建一个rmarkdown文档

写文档的常规操作是用word,程序员写文档的常规操作是用IDE的编程工具,用markdown格式来写文档,最后可生成word、pdf、html等文档。

我们今天讲讲怎么用R语言来写文档吧,那么R语言对markdown的支持包是rmarkdown包,现在新版的RStudio开发工具,已经集成了rmarkdown包,我们直接在RStudio中操作就行了。

首先我们先打开RStudio开发工具,选择新建一个R Markdown文件。

选择Document文档格式,设置Title, Author, Date等基本信息,然后可以选择文档输出格式HTML, PDF, Word的三种选择,不同的格式输出需求本机已经安装对应的其他软件。

打开新创建的文档,默认会是一个模板,以rmarkdown的格式进行展示,上面所输入的参数,在文档都的开头部分都有展示。然后保存一下文件。

我们可以点击Knit的下拉菜单,选择输出为HTML。

然后,运行Knit就会新打开一个窗口,看到HTML的网页输出。

如果想输出为word格式,重新选择 Knit到word就行了,运行后会弹出word的新生成的文件。

一通操作下来,功能切换很是顺畅,体验非常舒服。那么接下来就在rmarkdown中,加入各种元素,让整个文档丰富起来。

2. 嵌入markdown文本

在rmarkdown中嵌入markdown文本,是最基本的操作,在默认生成的文档中,就是一个带有markdown格式的文本。markdown格式的文本,包括10种主要的格式,分别是标题,字体,引用,分隔,图片,链接,列表,表格,代码。

2.1 标题
标题支持六级标题,用#做为开头,#的数量表示是几级标题。


# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题


图中,左边中编辑界面,右边是HTML的输出界面。

2.2 字体
字体格式设置有2种方法,一种是就markdown默认支持的4种格式,加粗,斜体,斜体加粗,删除线。另一种方法就是使用html的标签<font>来进行设置。


**这是加粗的文字**
*这是倾斜的文字*`
***这是斜体加粗的文字***
~~这是加删除线的文字~~

<font face="宋体">宋体</font>
<font face="宋体" color="red">红色宋体</font>
<font face="宋体" color="red" size="5">5号红色宋体</font>

2.3 引用
使用>用于表示引用外部的一段话,在引用中可以用\来进行换行。


> 我要引用一段文字\
\
R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。

2.4 分隔

在markdown中,可以通过3个连续的-或*,来设置分隔符。


--开始

---

**开始

********************

结束

2.5 图片
插入图片时,需要使用![文本说明](链接)语法。


![R的极客理想](http://fens.me/images/slider/img4.png)


2.6 链接
设置超级链接,有2种写法,一种就是[显示文字](链接),另一种是<链接>。


[粉丝日志博客](fens.me)

<http://www.fens.me>

2.7 列表
列表支持3种语法,一种是无序列表,二是有序列表,三是嵌套列表。

  • 无序列表,用 – + * 任何一种都可以,跟内容之间都要有一个空格
  • 有序列表,用数字加点,跟内容之间都要有一个空格
  • 嵌套列表,上一级和下一级之间有三个空格,跟内容之间都要有一个空格

无序列表

+ 列表内容
+ 列表内容
+ 列表内容

有序列表

1. 列表内容
2. 列表内容
3. 列表内容

无序列表嵌套

+ 1 列表内容
   + 1.1 列表内容
   + 1.2 列表内容
+ 2 列表内容
+ 3 列表内容

2.8 表格
在嵌入表格时,需求包括表头行,分隔符行,表体行。表头行用|分隔,表体行也用|分隔,分隔符行需要用–|组合进行分隔。当希望单元格整列对齐时,可以分隔符行加:来控制对齐,文字默认居左,两边加表示文字居中,右边加:表示文字居右。


表头|表头|表头
---|:--:|---:
内容|内容|内容
内容|内容|内容

表头|表头|表头
--|--|--
内容|内容|内容
内容|内容|内容


2.9 代码
代码的嵌入可以分为行内代码嵌入代码和代码块。

  • 行内代码,需要使用”包住代码,代码不可换行。
  • 代码块,需要用“` “`来包住代码,代码可换行。

文字中内嵌了`a="abc"`代码

```
a="abc"
a1=2
a2=3
a3=a1+a2
```

Markdown的基本语法,就是这9部分很简单,写一次练习一下,就记住了。

3. 嵌入R代码

上面我们演示了在markdown中嵌入代码,那么对于R语言来说,如果我们希望嵌入R代码,需要代码块针对R代码做一些支持的时候,要怎么写呢。


```{r}
a<-Sys.Date()
a

head(iris)
plot(iris)
```

接下来,我们还可以在{r echo=FALSE}加入echo=FALSE,这样就不输出R的代码本身了。


```{r echo=FALSE}
library(xts)
xdf<-xts(rnorm(100),order.by = as.Date('2022-01-01')+1:100)
plot(xdf)
```

4. 嵌入DT动态表格

在R的代码中,我们可以调用R的各种包进行输出,可以使用DT包来做动态表格,只要把数据放到datatable()函数中,就可以在markdown中生成对应的动态表格,支持翻页、关键字搜索,排序等多种功能。


```{r}
library(DT)
datatable(iris)
```

5. 嵌入echarts动态图

在文档输出时,经常需要用图进行展示,我们也可以直接使用echart4r包来调用echarts进行多种图的可视化展示。


```{r}
library(echarts4r)
library(magrittr)
iris %>% 
  e_charts(x = Sepal.Length) %>%
  e_scatter(serie = Sepal.Width )
```

6. 嵌入数学公式

文档中,也避免不了经常会写一些数据公式 ,rmarkdown中也集成是嵌入数据公式的功能。我们可以直接使用$$公式$$的语法,来生成复杂的数学公式。在文档中加入数学公式,是使用mathjax格式来进行数学公式的编辑。


$$
\hat\beta_1=\frac{\sum\left(X_i-\overline{X}\right)Y_i}{\sum\left(X_i-\overline{X}\right)^2}=\frac{\sum X_iY_i-\overline{X}\sum Y_i}{\sum X_i^2+\sum \overline{X}^2 - 2\overline{X}\sum X_i}\\
=\frac{\sum X_iY_i-\overline{X}*N\overline{Y}}{\sum X_i^2+N\overline{X}^2 - 2\overline{X}*N\overline{X}}
=\frac{\sum^{N}_{i=1} X_iY_i-N\overline{XY}}{\sum^{N}_{i=1}Xi^2-N\overline{X}^2}
$$

本文我介绍了rmarkdown的功能,有非常丰富的支持,多样的表达形式,语法简单,而且是可重复性生成的,比起 word 写文档,有更多的编程的特点。写书,写论文,写标书,写文档,都是不错的选择。

转载请注明出处:
http://blog.fens.me/r-markdown-rmarkdown/

打赏作者