DATA2002 Communicating with Data in the Tidyverse

  • 前言
  • 下载链接(待更新)
  • 1 自定义 ggplot2 主题 (Custom ggplot2 themes)
    • 1.1 开发数据
      • 1.1.1 连接两个数据集
      • 1.1.2 过滤数据
      • 1.1.3 统计汇总数据
    • 1.2 绘制基本散点图
      • 1.2.1 绘图添加标签
    • 1.3 ggplot 主题
    • 1.3.1 自定义theme生成
  • 2 创建自定义和独特的可视化 (Creating a custom and unique visualization)
    • 2.1 在plot里添加情节
    • 2.2 定义自己的主题功能
    • 2.3 连接观察
      • 2.3.1 在线条上添加剪头
  • 3 介绍Rmarkdown (Introduction to RMarkdown)
    • 3.1 文档的结构
    • 3.2 文档分级
    • 3.3 更改格式
    • 3.4 代码块
  • 4 自定义您的 RMarkdown 报告 (Customizing your RMarkdown report)
    • 4.1 更改整体报告外观
    • 4.2 添加目录
  • 小结
  • Final 加油 ! ALL HD ! 全员HD !

前言

本章介绍了如何使用 ggplot2 主题里的功能制作出高质量的图形,也介绍了 tidyverse 里使用RMarkdown 和 CSS生成好看精美的自定义式报告。

小编尽最大努力,将抽象的代码知识,用通俗易懂的语言表示出来,让你们更轻松的学到coding!

时间紧,任务重,可能会出现一些错误。如果你有一双火眼金睛,请你找出他们!私信我或者在文章下面评论。如果你觉得有更好的方法去讲某个知识点,也可以私信或者评论。我很乐意接受你们的意见和想法。

下载链接(待更新)

最近小编任务量有点大,我会尽快补齐。请谅解!


1 自定义 ggplot2 主题 (Custom ggplot2 themes)

在这单元,您将先了解数据之间的关系,然后探索可视化报告

1.1 开发数据

1.1.1 连接两个数据集

dplyr包中,可以通过 inner_join() 函数,连接两个数据集。
RDocument:inner_join()
tidyverse Cheat Sheet :tidyverse备忘单

inner_join(x , y , by = NULL , on = NULL)

1.1.2 过滤数据

dplyr包中,可以使用 filter() 函数,过滤一些不想要的数据。其中,在 filter() 函数中可以添加 %in% 来识别元素(例如,数字)是否属于向量或数据帧。
link1:How to use %in% in R: 7 Example Uses of the Operator

link2:filter: Return rows with matching conditions

> x<-data.frame(id=1:6,
+               name=c("wang","zhang","li","chen","zhao","song"),
+               shuxue=c(89,85,68,79,96,53),
+               yuwen=c(77,68,86,87,92,63))
> xid  name shuxue yuwen
1  1  wang     89    77
2  2 zhang     85    68
3  3    li     68    86
4  4  chen     79    87
5  5  zhao     96    92
6  6  song     53    63)> filter(x,name=="zhang")id  name shuxue yuwen
1  2 zhang     85    68
> a <- seq(1, 5)
> b <- seq(3, 12)
>
> a %in% b
[1] FALSE FALSE  TRUE  TRUE  TRUE

1.1.3 统计汇总数据

dplyr 包中,我们可以使用 group_by()summarize() 汇总统计数据。
小Tips:
1. 记住是 summarize() 函数而不是 summarise() 函数
2. group_by() 为分组函数,是如果我们添加了 group_by() 函数后,我们可以理解为电脑自动给我们的数据进行了按照我们指定的列进行了分组整合,该函数通常和 summarize() 函数合在一起使用,也可以和 filter()select() 函数合在一起使用。
link1: group_by: Group by one or more variables
link2: summarize()

group_by(.data, ..., add = FALSE)
> library(dplyr)
> x<-data.frame(id=1:6,
+               name=c("wang","zhang","li","chen","zhao","song"),
+               shuxue=c(89,85,68,79,96,53),
+               yuwen=c(77,68,86,87,92,63))
> xid  name shuxue yuwen
1  1  wang     89    77
2  2 zhang     85    68
3  3    li     68    86
4  4  chen     79    87
5  5  zhao     96    92
6  6  song     53    63> summarise(x,sum(shuxue))sum(shuxue)
1         470> summarise(group_by(x,name),sum(shuxue))
# A tibble: 6 × 2name  `sum(shuxue)`<chr>         <dbl>
1 chen             79
2 li               68
3 song             53
4 wang             89
5 zhang            85
6 zhao             96

1.2 绘制基本散点图

通过以上数据的基本处理,我们能得到想要的数据,下面就是激动人心的绘图了。
ggplot2 包里,可以使用 geom_point() 来绘制基本散点图。
link: geom_point()

ggplot(数据) +geom_point()

1.2.1 绘图添加标签

在绘图中,可以添加标签来增加美观和增强可视化图片的可读性。
可以使用 labs() 函数添加不同的标签。
link: labs: Modify axis, legend, and plot labels

ggplot() + geom_point() +labs(x = aaaaaa , y = bbbbbb ,title = cccccc , subtitle = dddddd , caption = eeeeee)

1.3 ggplot 主题

ggplot2 中有一些独特的主题可以使用,这可以让你的可视化变得非常漂亮。
link: theme
我使用最小的主题作为例子。

ggplot() +geom_point() +theme_minimal()

上面的是 theme_minimal() 效果,下面是系统自动生成的效果。

1.3.1 自定义theme生成

除了系统格式之外,还可以自定义 theme() 更改绘图的不同样式属性来调整绘图。
link: Modify components of a theme
例子:

ggplot()+geom_point() +theme_minimal() +theme(text = element_text(family = "Bookman") ,title = element_text(color = "blue") , plot.caption = element_text(color = "red") ,plot.subtitle = element_text(size = 11))# 更多参数用法请参考上面的link

2 创建自定义和独特的可视化 (Creating a custom and unique visualization)

条形图、散点图和直方图可能是最常见和最有效的数据可视化。然而,有时,甚至有更好的方法可以直观地突出您想要与观众交流的发现。所谓的“点图”让我们更好地掌握和理解数据的变化:例如,随着时间的推移而发展。在本章中,您将构建一个自定义且独特的可视化,以强调和解释您想要讲述的故事的一个方面。

2.1 在plot里添加情节

ggplot 中可以使用 facet_grid() 添加一些分面。
link: Lay out panels in a grid

library("ggplot2")
p1 <- ggplot(iris, aes(x =Species , y = Sepal.Length))+geom_point()p1 + facet_grid(. ~Species )

2.2 定义自己的主题功能

可以通过 function() 函数自定义theme主题。
例子:在 theme_minimal() 主题上添加更多的细节内容。

library("ggplot2")my_theme <- function(){theme_minimal() +theme(text = element_text(color = "gray25"),plot.subtitle = element_text(size = 9),plot.title = element_text(size = 18))
}p1 <- ggplot(iris, aes(x =Species , y = Sepal.Length))+geom_point() +my_theme() +labs(title = "aaaaa",subtitle = "bbbbb")
p1

2.3 连接观察

ggplot 中 我们可以使用 geom_path() 函数创建点图的基本结构。
link: Connect observations

ggplot(iris) +geom_path(aes(x = Sepal.Length , y = Species))

2.3.1 在线条上添加剪头

很多时候需要再图片的线条上添加剪头,来表示方向。我们可以使用 arrow() 函数,有两个参数 lengthtype
link: arrow: Describe arrows to add to a line.

ggplot(iris) +geom_path(aes(x = Sepal.Length , y = Species),arrow = arrow(length = unit(3 ,'mm'),type = "closed"))

3 介绍Rmarkdown (Introduction to RMarkdown)

过去,研究人员和数据分析师过去常常在 R 中生成绘图,然后繁琐地将它们复制到他们的 LaTeX 或 Word 文档中。如今,可以使用 RMarkdown 语言从 R 和 RStudio 中生成和复制整个报告——结合 R 块、格式化散文、表格和情节。在本章中,您将获得以前的发现、结果和图形,并将它们整合到这样的报告中,以讲述需要讲述的故事。

3.1 文档的结构

在做RMarkdown时,首先要确定文档的结构。

小Tip: 请注意,在表示标题和文本的符号之间包含一个空格是一个好习惯!这使您的 Markdown 语法保持良好和可读性。

---
title: "aaaaaaaaa"
subtitle: "bbbbbbbbbbb"
author: "ccccccccccc"
output: "ddddddddddd"
---

3.2 文档分级

在报告中要生成不同的级别目录,可以使用 # , ## , ###

# 这是一级
## 这是二级
### 藏式三级

3.3 更改格式

在Rmarkdown中有很多的格式选项,粗体 **aaaaa** , 斜体 *bbbbb*

**这是粗体**
*这是斜体*

3.4 代码块

在R中添加代码块是非常重要的一部分,我们可以使用以下方法:

4 自定义您的 RMarkdown 报告 (Customizing your RMarkdown report)

您的老板、您的客户或您的教授通常希望您的结果准确并以清晰简洁的结构呈现。但是,在此基础上提供格式良好且独特的报告肯定是一个加分项,并且可以自定义 RMarkdown 来实现此目的。

4.1 更改整体报告外观

在YAML标头中,可以指定自定义主题改变外观

---
title: "aaaaaaaaa"
subtitle: "bbbbbbbbbbb"
author: "ccccccccccc"
output: html_document:theme: cosmolighlight: monochrome
---

4.2 添加目录

RMarkdown 报告(无论是 HTML 还是 PDF)的另一个很酷的功能是自动生成的目录 (TOC)。通过多种设置,您可以自定义您的 TOC:

添加toc目录:toc : true ,设置跟随一起浮动:toc_float: true ,设置深度: toc_depth : 4

---
title: "aaaaaaaaa"
subtitle: "bbbbbbbbbbb"
author: "ccccccccccc"
output: html_document:toc: truetoc_float: truetoc_depth: 4
---

小结

part3和part4的部分不是重点,所以讲的不是很细致,更多内容细节的在Google里搜索就行,不是什么难点知识。后期会单独拿出来一章节讲这个知识点。
代码部分多多练习,多花费时间了解一下,也要多实践。
下一部分会更新Module1 的几个test内容和基础的R代码知识。

Final 加油 ! ALL HD ! 全员HD !

USYD悉尼大学DATA 2002 【R语言学习2】在 Tidyverse 中与数据通信 (Communicating with Data in the Tidyverse)相关推荐

  1. R语言学习手记 (1)

    R语言学习手记 (1) 经管的会计和财管都会学数据统计与分析R语言这门课,加上我也有点兴趣,就提前选了这门课,以下的笔记由老师上课的PPT.<R语言编程艺术>和<R语言数据科学> ...

  2. R语言学习笔记(1~3)

    R语言学习笔记(1~3) 一.R语言介绍 x <- rnorm(5) 创建了一个名为x的向量对象,它包含5个来自标准正态分布的随机偏差. 1.1 注释 由符号#开头. #函数c()以向量的形式输 ...

  3. R语言学习笔记 07 Probit、Logistic回归

    R语言学习笔记 文章目录 R语言学习笔记 probit回归 factor()和as.factor() relevel() 案例11.4复刻 glm函数 整理变量 回归:Logistic和Probit- ...

  4. R语言学习笔记——入门篇:第一章-R语言介绍

    R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...

  5. R语言学习之数据分析实战(一)

    R语言学习之数据分析实战(一) 一.线性回归 回归(regression):通常指那些用一个或多个预测变量,也称自变量或解释变量,来预测响应变量,也称为因变量.效标变量或结果变量的方法. 普通最小二乘 ...

  6. R语言学习系列之本地数据获取

    R语言学习系列之本地数据获取 任何数据分析工作之前,都得把数据先读取进来你才能进行后续的分析工作.所以本文简要介绍在R中如何对本地文件进行获取,希望可以给刚刚接触R语言的同学一点启发. 一.控制台的输 ...

  7. R语言学习笔记——入门篇:第三章-图形初阶

    R语言 R语言学习笔记--入门篇:第三章-图形初阶 文章目录 R语言 一.使用图形 1.1.基础绘图函数:plot( ) 1.2.图形控制函数:dev( ) 补充--直方图函数:hist( ) 补充- ...

  8. 2017-8-27 R语言学习路线

    标签: 有道云笔记 1.初级入门 <An Introduction to R>,这是官方的入门小册子.其有中文版,由丁国徽翻译,译名为<R导论>.<R4Beginners ...

  9. R语言学习实战——解决边际分布图

    目录 0 R语言概述 1 本次实战简介 2 涉及的工具包 2.1 ggplot2简介 2.2 ggExtra简介 2.3 ggpointdensity简介 3 开始画图 3.1 安装并载入 3.2 导 ...

  10. R语言学习笔记 06 岭回归、lasso回归

    R语言学习笔记 文章目录 R语言学习笔记 比较lm.ridge和glmnet函数 画岭迹图 图6-4 <统计学习导论 基于R语言的应用>P182 图6-6<统计学习导论 基于R语言的 ...

最新文章

  1. Python gRPC 安装
  2. github下载慢,轻松提速教程
  3. 走进云计算与虚拟化的底层核心
  4. 机器学习知识点(十八)密度聚类DBSCAN算法Java实现
  5. 矩阵论及其应用_群表示论笔记(一)
  6. 2017年度深圳市知识产权优势企业拟定名单公示(钱多,工资高的公司)
  7. WebStorm学习笔记002---grunt-watch插件的使用-修改html,css,js文件实现自动编译更新
  8. Linux系统性能相关知识学习
  9. Ponemon Institute告诉你,大数据正在勾搭网络安全
  10. LCM模组的简介与质量管理(连载四)
  11. vscode使用Setting Sync
  12. SQL 数据库 学习 012 数据库关系图
  13. 【位操作笔记】计算以2为底整数N的对数 查表法
  14. TiDB x 中国电信翼支付 | 「效率提升 5 倍」,TiDB 在电信翼支付金融核心场景的应用
  15. Kent Beck揭秘Facebook开发部署流程
  16. daytime协议的服务器和客户端程序,用socket套接字实现daytime协议的服务器和客户端程序精编版.doc...
  17. 头脑王者服务器维护,头脑王者服务器
  18. 错误 java.util.MissingResourceException:
  19. WSL2加载独立硬盘和设置固定IP
  20. openwrt 15.05 branch (Chaos Calmer)编译出的固件bootargs被覆盖

热门文章

  1. CSS 实现平行四边形、菱形、切角效果、梯形
  2. 推动中国制造升级,汽车装配车间生产流水线 3D 可视化
  3. Mac_IOS_报:The Xcode build system has crashed. Please close and reopen your workspace.
  4. 个人所得税 java_计算个人所得税的java代码
  5. HR人力资源管理系统面试时怎么介绍的思路
  6. word转html显示不完整,word页面怎么显不完全 word页面视图显示不全怎么办
  7. JavaScript刷LeetCode拿offer-贪心算法
  8. Cesium 关于相机的orientation 及 destination并制作地球动画
  9. 17个能帮你节省时间的开发工具!(值得收藏)
  10. 世界上最好用的FTP服务器管理工具