vlambda博客
学习文章列表

R语言快速入门(一)(第1部分:处理数据)



什么是R?



R是一种开源编程语言,通常用于统计,机器学习和数据分析。毫不奇怪,R在数据科学和分析社区中得到广泛使用,因为R的创建者本身就是统计学家。Ross Ihaka和Robert Gentleman以S编程语言为基础,主要为常见的数据科学和研究任务(例如导入数据,数据转换,数据处理,数据探索,统计建模和数据可视化)设计R。

我们并不认为R比Python或任何其他语言更好(或更差)。我们认为,一支高效的团队应具备多种语言能力。我们今天的目的是演示R的某些功能,以鼓励小伙伴加深了解。

基本原理

官方网站上,R被称为“ 实施统计技术的环境 ”。这意味着它的目标是成为一个通用且一致的系统,而不是定制且严格的数据分析软件。

外观如下:

R语言快速入门(一)(第1部分:处理数据)

小伙伴们可能注意到的第一件事是使用<-作为赋值运算符。尽管也可以使用=,但<-是首选。这主要是因为<-仅用于对象/变量分配。另一方面,=也可以在函数和case语句中使用。

在数据类型方面,R提供:

  • 逻辑上

  • 整数

  • 双倍

  • 字符

  • 复杂

逻辑类型是布尔值,可以是TRUE或FALSE。整数和双精度型都是数字数据类型,整数是整数,双精度型是十进制。字符是字符串,而复数是稀有类型,包括实部和虚部,例如2 + 0i。

至于数据结构,主要是:

  • 向量

  • 列表

  • 矩阵

  • 数据帧

  • 因素


在这里,我们不会详细介绍这些内容。也就是说,向量是同一数据类型的一维数据序列,索引从1开始;列表是可以包含不同大小的不同数据结构和数据类型的对象;矩阵类似于向量,但有两个维度而不是一个维度,排列成行和列;数据帧是数据集和表被存储,列作为变量;因子用于分类变量。注意,0维标量不存在。在R中,它们是长度为1的向量。

在创建分类或回归模型时,因子是非常强大的,消除了对虚拟变量或一个热编码的需要。如果数据是有序的,它们还允许你轻松设置类别的级别,例如,如果你有一个月列或一个从“强烈同意”到“强烈不同意”的刻度。


更进一步


在编程中,通常建议尽可能多的注释代码。这有助于代码的可读性和再现性。R也一样。你应该解释某些代码的作用,以及为什么使用注释做出某些决定。在R中,使用前缀进行注释。


R中一个方便的特性是使用美元符号($)作为速记运算符来访问数据帧或列表的组件,即表名$列名。使用集成开发环境(IDE)时,这特别方便,因为键入时会显示可用元素的完整列表。

R最流行的IDE是通过某种距离RStudio实现的。默认情况下,RStudio由4个窗格组成:编写代码的源窗格;计算代码的控制台窗格;查看创建的对象的环境窗格;以及可以查看工作目录中的文件、输出的绘图、系统上的包的最后一个窗格等。

R语言快速入门(一)(第1部分:处理数据)

RStudio提供了许多优点,这有助于使编写R代码更加容易。例如,您可以使用查看包或函数的文档?在包或函数的名称前加前缀。您可以使用ctrl+R(Mac上的Cmd+Shift+R)快捷键插入可以隐藏和显示的代码段,使长脚本的导航变得轻松。或者,您可以通过在注释行代码中添加四个破折号来将代码分块。您还可以通过在Windows上使用ctrl+shift+A快捷键(在Mac上使用Cmd+I)等来自动格式化代码。

虽然基R是实质性的,但R可以通过利用包来改进。包是共有创建的函数、数据和文档的集合,扩展了基本R的功能。包是使用install.Packages()函数从综合R存档网络(CRAN)免费安装的,并使用library()函数加载。



用dplyr进行数据处理


dplyr包是一个有效的数据转换和操作库。这是所谓的Tidyverse的一部分,它是由Hadley Wickham开发的一系列软件包的一部分,旨在实现无缝协作。Wickham在R社区有着极其重要的影响,并为R的发展做出了重大贡献。


据我们所知,数据科学家大约80%的时间花在整理数据上。Wickham将数据定义为在一个一致的结构中保持整洁,其中每一列是一个变量,每一行是一个观察值,允许您集中精力用数据提问,而不是努力使其成为不同功能的正确形式。


在R社区中有一个关于是使用base R还是Tidyverse的争论。据说Tidyverse提供了更高的代码可读性,但是基R更可靠。一般来说,这取决于个人喜好。我们给初学者的建议是在研究Tidyverse包之前先学习基本R。

大多数数据操作任务都在dplyr构建的5个“动词”内:

R语言快速入门(一)(第1部分:处理数据)
R语言快速入门(一)(第1部分:处理数据)

select():用于选择某些列

filter():用于基于值对行进行子集设置

arrange():用于排序数据

mutate():用于创建新列

summary():用于聚合


使用这些动词以及distinct()、count()、group_by()、left_join()、inner_join()等函数,很容易看出结构化查询语言(SQL)对dplyr的影响。甚至可以使用show_query()函数将dplyr代码自动转换为SQL查询。以这段代码为例,该结构与SQL查询有些相似:


R语言快速入门(一)(第1部分:处理数据)

在这里,我们正在查询iris数据集,我们正在创建一个名为Total.Length的新列,通过使用mutate函数,我们正在按种类分组,然后取每个种类的所有列的平均值。最后,我们将按新的Total.Length列对结果进行排序。

将上面的dplyr代码与使用基本R代码得到的相同结果进行比较:

R语言快速入门(一)(第1部分:处理数据)

使用dplyr的代码更容易理解,对吗?这在一定程度上是因为使用了被称为管道的“%>%”。此运算符提供一种机制,用于链接命令以帮助提高代码的可读性,并强调操作序列。可以理解为“然后”。

输出如下:

R语言快速入门(一)(第1部分:处理数据)

其他常用的数据操作包包括:

R语言快速入门(一)(第1部分:处理数据)
R语言快速入门(一)(第1部分:处理数据)

lubridate:用于处理日期和时间

tidyr/Reforme2:用于旋转和取消填充数据

stringr:用于处理字符串

zoo:用于时间序列数据

scales:用于格式化数据

小伙伴们对R是不是有了初步了解了呢?在第2部分中,我们将与小伙伴们一起研究R的最公认功能之一,通过R用图形来传递数据。














推荐阅读





技术交流




长按关注>>>

盘它

R语言快速入门(一)(第1部分:处理数据)

R语言快速入门(一)(第1部分:处理数据)


R语言快速入门(一)(第1部分:处理数据)

在看点一下 你我都共享







点击

阅读原文”,下载最新版 Power BI!