第 1 章 数据科学与R语言
1.1 数据科学
1.2 R语言基础
R 软件是一个自由、开源软件平台,具有统计分析、可视化和编程的强大功能。 你可以从这里免费下载。 为了更好的使用 R 软件,我推荐大家使用 RStudio这个 IDE。这里有个在线教程帮助我们熟悉 R 和 RStudio。 R 与 RStudio 是什么关系呢?你可以简单的理解为,RStudio 是话筒,而 R 则是沟通所用的语言。
RStudio 的用户界面十分简洁,想要运行一段R代码,只需要在 RStudio 控制台面板最下面一行内键入R 代码,然后回车即可。比如我们键入1 + 1
并按回车后,RStudio 将显示如下结果
1 + 1
## [1] 2
在R中存储的数据称为对象, R语言数据处理实际上就是不断的创建和操控这些对象。创建一个R对象,首先确定一个名称,然后使用
赋值操作符 <-
,将数据赋值给它。比如,如果想给变量 x 赋值为5,在命令行中可以这样写 x <- 5
,然后回车.
<- 5 x
当键入x
然后回车,就打印出 x 的值。当然也可以使用命令print(x)
,结果一样。
x
## [1] 5
R 语言的强大在于使用函数操控各种对象,你可以把对象看作是名词,而函数看作是动词。
我们用一个简单的例子,sum()
来演示函数如何工作的。这个函数的功能正如它的名字一样,对输入的各个对象求和,然后返回求和后的值,你可以在命令行中键入?sum()
查看其官方文档。
sum()
后的结果可以直接显示出来,也可以赋名。比如下面代码,首先计算x + 10
并赋以名字y
, 然后第二行中打印出来这个新创建的对象y
<- sum(x, 10)
y y
## [1] 15
因为代码的灵活性,可以不断地重新定义对象。只要数据发生改变,原来的代码就会返回新的值。比如,对x
重新赋值为 15, 同样运行sum()
函数,这次我们不赋值给对象y
,而是让它直接显示
<- 15
x sum(x, 10)
## [1] 25
如果我们已经写好了一段R程序,我们可以保存为脚本文件,脚本文件通常以.R作为文件的后缀名。比如我们可以将刚才创建x
和 y
对象的命令,保存为脚本文件my_script.R
。
这样我们可以在其它时间修改和重新运行它。
在RStudio中,你可以通过菜单栏依此点击File > New File > R Script
来创建一个新的脚本。
强烈建议大家在运行代码之前,使用脚本的形式编写和编辑自己的程序,养成这样的习惯后,你今后所有的工作都有案可查,并且具有可重复性。
1.3 R 宏包: The tidyverse
R 语言的强大还在于各种宏包,一般在The Comprehensive R Archive Network (CRAN)下载安装。宏包扩展了R语言本身的各种功能,也为解决问题提供了各种方案。截至撰写本书时止,CRAN上大约有1.2万个宏包可以使用。但由于各种包接口不统一,语法不一致,也带来一些困扰。为了解决这个问题,RStudio 公司的Hadley Wickham 与其带领的团队推出了tidyverse
宏包, tidyverse将常用的宏包整合在一起,并保持了语法的一致性。可以说,tidyverse
宏包是R语言入门 学习的首选。
本书正是基于tidyverse
宏包而成的,本书也将通过一些例子不断地展示tidyverse
在数据分析和可视化的应用。
数据分析主要使用dplyr package ,而可视化主要使用 ggplot2。 dplyr的函数主要有filter()
, select()
, arrange()
, mutate()
, group_by()
, 以及 summarise()
。 它们都具体相似的语法结构,将数据框(data frame
)作为第一个参数,随后的参数才是需要执行操作的列名。这些函数均返回一个新的数据框,这也让
dplyr
的各种函数借助管道操作符%>%
,能够串联起来,像流水线一样对数据框执行若干操作,从而得到想要的结果。
如果说dplyr
定义数据操作的语法,那么ggplot2
定义了图形语法。ggplot2
的图形语法可以通过很短的R代码绘制出漂亮的图形,这主要得益于ggplot2
两个主要的部件:几何对象和美学映射。所谓几何对象 就是使用什么样的可视化元素图形,是点?是线?还是矩阵?美学映射就是指数据框中的哪一列用来设置图形元素的大小、形状以及颜色等。
1.4 字符串处理:正则表达式
1.5 数据科学工作流程
数据科学工作流程
本书用到的R语言库包
<- c("ggplot2", "dplyr", "tidyr", "stringr", "widyr", "ggRadar",
my_packages "ggiraph", "ggiraphExtra", "ggraph", "tidygraph", "googlevis",
"broom", "modelr", "knitr", "rlang", "tidytext", "wordcloud2",
"tibbletime", "corrr", "devtools")
#install.packages(my_packages, repos = "http://cran.rstudio.com")
1.6 推荐书目
这不是一本讲R语言的书,如果您对R语言感兴趣,隆重向您推荐Hadley Wickham的《R for Data Science》这本书 (Grolemund and Wickham 2017),
您也可以抽空参加我的一小时系列讲座,课表时间在附录 A。