R学习:R for Data Science(一)

R语言学习系列

今天我们来开始一起学习一本书:R for Data Science

数据科学是一个极其广阔的领域,仅靠一本书是不可能登堂入室的。本书的目标是教会你使用最重要的数据科学工具。在一个典型的数据科学项目中,需要的工具模型大体如下图所示

本书第一部分的目的是让你尽快掌握数据探索的基本工具。数据探索是一门艺术,它可以审视数据,快速生成假设并进行检验,接着重复、重复、再重复。数据探索的目的是生成多个有分析价值的线索,以供后续进行更深入的研究

在本书的这一部分中,您将学习到一些有用的工具,这些工具具有即时的回报:
可视化是一个很好的开始R编程的地方,因为回报是如此的明确:你可以制作优雅和信息丰富的图表,帮助你理解数据。在数据可视化中,您将深入到可视化中,学习ggplot2绘图的基本结构,以及将数据转换为绘图的强大技术。
仅仅可视化通常是不够的,因此在数据转换中,您将学习一些关键动词,这些动词允许您选择重要的变量、过滤掉关键的观察结果、创建新的变量和计算摘要。
最后,在探索性的数据分析中,您将把可视化和转换与您的好奇心和怀疑相结合,来提出和回答有关数据的有趣问题。

第1章:使用ggplot2进行数据可视化

准备工作

install.packages("tidyverse")library(tidyverse)install.packages("ggplot2")library(ggplot2)

这一行代码加载了tidyverse的核心R包。在几乎所有的数据分析任务中,你都会用到这些R包。这行代码还会告诉你 tidyverse 中的哪些函数与基础R包或者已加载的其他 R 包)中的函数有冲突。

第一步

我们使用第一张图来回答问题:

大引擎汽车比小引擎汽车更耗油吗?

你可能已经有了答案,但应该努力让答案更精确一些。

引擎大小与燃油效率之间是什么关系?

是正相关,还是负相关?

是线性关系,还是非线性关系?

mpg数据框

可以使用 ggplot2 包中的 mpg 数据框(即 ggplot2::mpg)来检验自己的答案。数据框是变量(列)和观测(行)的矩形集合。mpg 包含了由美国环境保护协会收集的 38 种车型的观测数据。

mpg

mpg 中包括如下变量。
· displ:引擎大小,单位为升。
· hwy:汽车在高速公路上行驶时的燃油效率,单位为英里 / 加仑(mpg)。与燃油效率高的汽车相比,燃油效率低的汽车在行驶相同距离时要消耗更多燃油。

创建ggplot图形

为了绘制 mpg 的图形,运行以下代码将 displ 放在 x 轴, hwy 放在 y 轴:

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy))

上图显示出引擎大小(displ)和燃油效率(hwy)之间是负相关关系。

在 ggplot2 中,你可以使用 ggplot() 函数开始绘图。ggplot() 创建了一个坐标系,你可以在它上面添加图层。ggplot() 的第一个参数是要在图中使用的数据集。ggplot(data = mpg)会创建一张空白图,因为这张图没什么意思,所以就不在这里展示了。向 ggplot() 中添加一个或多个图层就可以完成这张图。函数 geom_point() 向图中添加一个点层,这样就可以创建一张散点图。

ggplot2 中的每个几何对象函数都有一个 mapping 参数。这个参数定义了如何将数据集中的变量映射为图形属性。mapping 参数总是与 aes() 函数成对出现, aes() 函数的 x 参数和 y参数分别指定了映射到 x 轴的变量与映射到 y 轴的变量。ggplot2 在 data 参数中寻找映射变量,本例中就是 mpg。

绘图模板

我们将上面的代码转换为一个可重用的 ggplot2 绘图模板。要想生成一张图,将以下代码中的尖括号部分替换为数据集、几何对象函数或映射集合即可:

ggplot(data = <DATA>) + <GEOM_FUNCTION>(mapping = aes(<MAPPINGS>))

图形属性映射

可以向二维散点图中添加第三个变量,比如 class,方式是将它映射为图形属性。图形属性是图中对象的可视化属性,其中包括数据点的大小、形状和颜色。通过改变图形属性的值,可以用不同的方式来显示数据点
通过将图中的图形属性映射为数据集中的变量,可以传达出数据的相关信息。例如,可以将点的颜色映射为变量 class,从而揭示每辆汽车的类型:

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = class))

要想将图形属性映射为变量,需要在函数 aes() 中将图形属性名称和变量名称关联起来。ggplot2 会自动为每个变量值分配唯一的图形属性水平(本例中是唯一的颜色),这个过程称为标度变换。ggplot2 还会添加一个图例,以表示图形属性水平和变量值之间的对应关系

在上例中,我们将 class 映射为颜色,但也可以用同样的方式将其映射为点的大小。在下面的示例中,每个点的实际大小表示其所属的类别。这里我们收到一条警告信息,因为将无序变量(class)映射为有序图形属性(size)可不是好主意。

或者我们也可以将 class 映射为控制数据点透明度的 alpha 图形属性

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, alpha = class))
ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, shape = class))

还可以将其映射为点的形状

ggplot2 只能同时使用 6 种形状。默认情况下,当使用这种图形属性时,多
出的变量值将不会出现在图中

对你所使用的每个图形属性来说,函数 aes() 都可以将其名称与一个待显示变量关联起来。aes() 将图层中使用的每个图形属性映射集合在一起,然后传递给该图层的映射参数。这一语法强调了关于 x 和 y 的重要信息:数据点的 x 轴位置和 y 轴位置本身就是图形属性,即可以映射为变量来表示数据信息的可视化属性。一旦映射了图形属性, ggplot2 会处理好其余的事情。它会为图形属性选择一个合适的标度,并创建图例来表示图形属性水平和变量值之间的映射关系。ggplot2 不会为 x 和 y 这两个图形属性创建图例,而会创建带有刻度标记和标签的坐标轴。坐标轴就相当于图例,可以体现出位置和变量值之间的映射关系

还可以手动为几何对象设置图形属性。例如,我们可以让图中的所有点都为蓝色:

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy), color = "blue")

此时颜色不会传达关于变量的信息,只是改变图的外观。要想手动设置图形属性,需要按名称进行设置,将其作为几何对象函数的一个参数。这也就是说,需要在函数 aes() 的外部进行设置。此外,还需要为这个图形属性选择一个有意义的值

· 颜色名称是一个字符串。
· 点的大小用毫米表示。
· 点的形状是一个数值,如下图所示。有些形状相同,比如 0、 15 和 22 都是正方形。形状之间的区别在于 color 和 fill 这两个图形属性。空心形状(0~14)的边界颜色由color决定;实心形状(15~20)的填充颜色由 color 决定;填充形状(21~24)的边界颜色由 color 决定,填充颜色由 fill 决定。

举个栗子

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy), shape = 1, colour = "blue", size = 5, stroke = 2)
ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy), shape =21, colour = "blue", fill = "grey",size = 5, stroke = 2)

好了,今天就先放到这。

另外,最近收集了一些很好的资源,想分享给大家,顺便能涨一些粉,主要有

1. 19年中标的各门类国自然题目汇总,以及17年的国自然汇总,部分含摘要!

2. R语言学习书籍

R语言实战(中文完整版)

R数据科学(中文完整版)

ggplot2:数据分析与图形艺术

30分钟学会ggplot2

3. TCGA数据整理

前期从https://xenabrowser.net/datapages/ (UCSC Xena)数据库下载的TCGA数据,传到了百度云上备份。

感兴趣的话,转发朋友圈或者100人以上的微信群,截图发到公众号,即可获取全部资源的百度云链接,链接7天有效,希望大家赶紧下载。你们的支持是我前进的动力,感谢。

(0)

相关推荐