R中的数据操作:什么是变量,使用dplyr包
已发表: 2020-03-26目录
介绍
除了员工和基础设施,数据是任何公司的新基石。 从大公司到小型行业,数据是推动其业务发展的燃料。 这些数据与他们的日常业务交易、客户购买数据、销售数据、财务图表、业务统计、营销活动等等相关联。 这就是为什么O'Reilly Media 的创始人 Tim O'Reilly 说我们正在进入一个数据比软件更重要的情况。
但是这么多数据怎么办? 公司使用这些数据来获得对其业务绩效的宝贵见解。 他们聘请了在 R 中执行数据操作的数据科学家来理解这些数据。 例如,了解过去一年的销售和营销数据将使他们了解自己的立场。 最近的一项研究表明,到 2023 年,数据分析市场的价值预计将达到 776 亿美元。
聘请数据科学家通过称为数据操作的过程来理解这些数据。
什么是数据操作?
数据操作是组织数据以更好地阅读和理解它的过程。 例如,公司官员可能会从他们的系统和日志中获取客户数据。 大多数情况下,这些数据将存储在 CRM(客户关系管理)软件和 Excel 表中。 但它可能没有正确组织。 数据操作包括组织所有这些数据的方法,例如按照字母顺序。
可以根据日期、时间、序列号或任何其他字段对数据进行排序。 公司会计部门的人员使用这些数据来确定销售趋势、用户偏好、市场统计数据和产品价格。 金融分析师使用数据来了解股票市场的表现、趋势以及他们应该投资的最佳股票。
此外,Web 服务器数据可用于了解网站的流量。 在这个技术时代,物联网是数据来自连接到机器的传感器的技术示例。 该数据用于确定机器的性能,以及是否存在任何缺陷。 数据处理在物联网中至关重要,因为到 2025 年市场价值将达到 816.7 亿美元。
数据操作通常使用称为 R 的编程语言执行。让我们更好地了解该语言。
什么是R?
要了解R 中的数据操作,您必须了解 R 的基础知识。它是一种用于数据分析、统计计算和人工智能的现代编程语言。 该语言由Ross Ihaka 和 Robert Gentleman于 1993 年创建。 如今,研究人员、数据分析师、科学家和统计学家使用 R 来分析、清理和可视化数据。
R 有一个庞大的目录,由图形和统计方法组成,可以支持机器学习、线性回归、统计推断和时间序列。 根据 GNU 通用公共许可证,该语言可免费用于 Windows、Mac 和 Linux 等操作系统。 它是平台友好的,这意味着在一个平台上编写的 R 代码可以在另一个平台上轻松执行。
R 现在被认为是数据科学的主要编程语言。 但它是一种综合性语言,因为您可以将其用于软件开发以及统计建模等复杂任务。 您可以使用它的包 RShiny 开发 Web 应用程序。
它是如此强大的语言,以至于谷歌和 Facebook 等一些世界上最好的公司都在使用它。
让我们看看 R 的一些最重要的特性:
- 它有CRAN (综合 R 存档网络) ,它是一个包含 10,000 多个 R 包的存储库,具有处理数据所需的所有功能
- 它是一种开源编程语言。 这意味着您可以免费下载它,甚至可以为其开发做出贡献,更新其功能并自定义其现有功能
- 您可以从 R 有用的图形库(例如ggplot2和plotly )中的手头数据创建高质量的可视化
- R 是一种速度非常快的语言。 由于它是一种解释型编程语言,因此无需编译器即可将 R 程序转换为可执行代码,因此 R 脚本运行速度更快
- R 可以快速执行各种复杂的计算,包括数组、数据帧和向量。 有许多运算符用于执行这些计算
- 它处理结构化和非结构化数据。 大数据和 SQL 扩展可用于处理所有类型的数据
- R 拥有一个不断发展的社区,拥有最聪明的头脑。 这些人通过开发 r 库和更新不断为编程语言做出贡献
- 您可以轻松地将 R 与 Python、Java 和 C++ 等其他编程语言集成。 您还可以将其与Hadoop结合起来进行分布式计算
现在您已经收集了 R 编程语言的基础知识,让我们深入了解令人兴奋的内容!
R中的变量
在 R 中编程或在 R 中执行任何数据操作时,您必须处理变量。 变量用于存储可能是字符串、整数、浮点整数或布尔值形式的数据。 这些变量在内存中为其内容保留一个空间。 与传统编程语言不同,R 中的变量与R 对象一起分配。
变量没有数据类型,但获取分配给它的 R 对象的类型。 最受欢迎的 R 对象是:
- 矢量图
- 列表
- 数组
- 矩阵
- 因素
- 数据框
这些数据结构对于R 中的数据操作和数据分析非常重要。 让我们更详细地看一下它们,以了解基本的数据操作:
矢量图
它们是最基本的数据结构,用于一维数据。 原子向量的类型有:
- 整数
- 逻辑的
- 数字
- 复杂的
- 特点
当您在 R 中创建值时,它变为长度为 1 的单元素向量。例如,
打印(“ABC”); # 字符类型的单元素向量
print(10.5) # double 类型的单元素向量
使用它们的索引号访问向量中的元素。 向量中的索引位置从 1 开始。例如,
t <- c(“周一”、“周二”、“周三”、“周六”)
u <- t[c(1,2,3)]
打印(u)
结果将是“周一”“周二”“周三”
列表
这些是 R 中的对象,用于在其中保存不同类型的元素。 这些可以是整数、字符串甚至列表。 如果数据不能保存在数据框或数组中,这是最好的选择。 列表也可以包含一个矩阵。 您可以使用 list() 方法创建列表。
使用以下代码创建列表:
list_data <- list(“黑色”、“绿色”、c(11,4,14), TRUE, 31.22, 120.5)
打印(列表数据)
可以使用列表索引访问列表元素。
print(list_data[1]) #代码打印出列表的第一个元素
使用列表进行数据操作的示例:
list_data[4] <- NULL # 如果列表有 4 个元素,此代码将删除列表的最后一个元素
阅读:用于数据科学的 R 与 Python
数组
数组是只能用于存储单一数据类型的对象。 二维以上的数据可以存储在数组中。 为此,您必须使用将向量作为输入的 array() 函数。 它使用 dim 参数中的值来创建数组。
例如,看下面的代码:
vector_result <- array(c(vectorA,vectorB),dim = c(3,3,2))
打印(向量结果)
矩阵
在这些 R 对象中,元素以二维布局组织。 矩阵包含相似原子类型的元素。 当元素属于单个类时,这些是有益的。 为数学计算创建具有数字元素的矩阵。 您可以使用 matrix() 函数创建矩阵。
创建矩阵的基本语法如下:
矩阵(数据,nrow,ncol,byrow,dimnames)
- 数据——这是成为矩阵数据元素的输入向量
- Nrow – 这是您要创建的行数
- Ncol – 这是您要创建的列数
- Byrow——这是一个合乎逻辑的线索。 如果其值为 TRUE,则向量元素将按行排列
- Dimname – 列和行的名称
因素
这些 R 对象用于对数据进行分类并将它们存储为级别。 它们适用于统计建模和数据分析。 整数和字符串都可以存储在因子中。 您可以使用 factor() 函数通过提供向量作为方法的输入来创建因子。

数据框
它具有二维结构,例如具有行和列的数组。 在这里,每一行都有一组属于每一列的值。 这些列包含一个变量的值。 它们用于表示电子表格中的数据。 这些可用于存储因子、数字或字符类型的数据。
数据框具有以下特点:
- 行名必须是唯一的
- 列名必须为非空
- 每列的数据项数必须相同
R中的数据操作
在R 中进行数据操作期间,第一步是从庞大的数据集中创建小数据样本。 这样做是因为无法一次分析整个数据集。 通常,数据分析师会创建数据集的代表性子集。 这有助于他们识别更大数据集中的趋势和模式。 这种抽样过程也称为子集。
在 R 中创建子集的不同方法如下:
- $ -这会选择数据的单个元素,其结果始终是一个向量
- [[ -此子集运算符也返回单个元素,但您可以通过它们的位置来引用元素
- [ -此运算符用于返回数据的多个元素
R中数据操作的一些基本功能是:
样本()函数
顾名思义, sample()方法用于从更大的数据集中创建数据样本。 除了这个命令,您还提到了您希望从数据集或向量中提取的样本数量。 基本语法如下:
样本(x,大小,替换 = FALSE,概率 = NULL)
x - 这可以是一个向量或多个元素的数据集,必须从中选择样本
size - 这是一个正整数,表示要选择的项目数
replace -这可以是 True 或 False,无论您想要有或没有替换的采样
prob - 它是用于提供权重向量的参数,用于获取正在采样的向量的元素
表()函数
此函数创建一个频率表,用于计算特定变量的唯一值的数量。 例如,让我们使用 iris 数据集创建一个频率表:
表(鸢尾花$物种)
上面编写的代码创建了一个表格,描述了 iris 数据集中的物种类型。
重复的()
duplicated() 方法用于识别和删除数据集中的重复值。 它将向量或数据框作为参数,并为重复的元素返回 True。 例如,
重复(c(1,1,3))
这将检查其中哪些元素是重复的并返回 True 或 False。
另请阅读:R 中的决策树
使用 dplyr 包在 R 中进行数据操作
R 提供了一个简单易用的包 dplyr 用于数据操作。 该软件包具有一些用于操作、数据探索和转换的内置方法。 让我们看看这个包的一些最重要的功能:
选择()
select() 方法是R 中数据操作的基本功能之一。 此方法用于在 R 中选择列。使用此方法,您可以选择数据作为其列名。 可以根据特定条件选择列。 假设我们要选择名为 myData 的数据框的第 3列和第4列,代码将是:
选择(我的数据,3:4)
筛选()
此方法用于过滤匹配特定条件的数据集行。 它可以像 select() 一样工作,首先传递数据帧,然后使用逗号分隔条件。
例如,如果要过滤掉数据集中汽车颜色为红色的列,则必须编写:
过滤器(汽车,颜色==“红色”)
结果,将显示匹配的行。
变异()
您可以使用mutate() 方法在数据集中创建新列,同时保留旧列。 可以通过指定条件来创建这些列。 例如,
变异(mtcars,mtcars_new_col = mpg / cyl)
在此命令中,在 mtcars 数据集中,创建了一个新列mtcars_new_col ,其中包含 mpg 列除以 cyl 列的值。
安排()
这用于使用一个或多个变量按升序或降序对行进行排序。 您可以在排序变量之前添加减号 (-),而不是应用 desc() 方法。 这将指示排序的降序。 例如,
安排(我的数据集,-Sepal.Length)
通过...分组()
group_by() 方法用于按一个或多个变量对数据集中的观察进行分组。
总结()
summarise() 函数有助于确定数据洞察力,例如均值、中值和众数。 它与另一个方法 group_by 创建的分组数据一起使用。 summarise() 有助于将多个值减少为单个值。
合并()
merge() 方法将数据集组合或合并在一起。 这对于将多个输入数据源组合在一起很有用。
该方法为您提供了 4种合并数据集的方法。 它们在下面提到:
- 自然连接-这用于将符合指定条件的行保留在数据框中
- 全外连接——合并并存储两个数据帧中的所有行
- 左外连接——存储数据框 A 的所有行,以及 B 中匹配的行
- 右外连接——存储数据框 B 的所有行,以及 A 中匹配的行
重命名_if()
此函数可用于在满足指定条件时重命名数据框的列。
重命名_all()
这用于在不指定任何条件的情况下重命名数据框的所有列。
从世界顶尖大学学习数据科学课程。 加入我们的行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。
管道操作员
管道运算符可用于magrittr 和 dplyr等包中,用于简化您的整体代码。 运算符可让您将多个功能组合在一起。 由 %>% 符号表示,它可以与流行的方法一起使用,例如 summarise()、filter()、select() 和 group_by(),同时在 R 中进行数据操作。
除了 dplyr,CRAN 中还有许多其他包用于R 中的数据操作。 事实上,你会发现超过 7000 个包可以减少你的编码和错误。 其中许多软件包是由专家开发人员创建的,因此您可以放心使用。 这些包括:
- 数据表
- 润滑
- ggplot2
- 读者
- 重塑2
- 蒂迪尔
结论
如果您是R 中数据操作的初学者,您可能会选择 R 中可用的内置基本函数。这些方法包括 with()、within()、duplicated()、cut()、table()、样本()和排序()。 但它们既耗时又重复。 这不是一个非常有效的选择。
因此,最好的方法是使用 CRAN 中的大量软件包,例如 dplyr。 这些非常有用,可以让你的程序更有效率。
哪个包对 R 中的数据操作有用?
数据操作过程用于修改可用数据,使其更易于阅读,同时使其更有条理。 收集数据的机器通常存在大量错误和不准确之处。 数据操作允许您消除这些不准确之处并提供更准确的数据。
有很多方法可以在 R 中执行数据操作,例如使用 ggplot2、readr、dplyr 等包以及使用像 inside()、with() 等基本 R 函数。但是,dplyr 包被认为非常对 R 中的数据操作很有用。这个包由专门为数据操作而设计的各种函数组成,与其他方法和包相比,它允许更快地处理数据。
R 中 dplyr 包的目的是什么?
dplyr 包被认为是在 R 中以最高效率进行数据操作的最佳包。 早些时候,有一个名为 plyr 的包,它已经被迭代形成 dplyr。 现在,dplyr 完全专注于数据帧。 这就是为什么它更快,具有更好和一致的 API,并且也非常易于使用的原因。
与 R 中的其他数据操作包相比,dplyr 包以增强的性能充分利用可用数据。
你怎么能操纵数据?
为了执行数据操作,您需要按一般顺序执行某些步骤。 请按照以下步骤操作:
1. 首先,您需要一个从数据源创建的数据库。
2. 接下来,您需要通过数据操作来清理、重新排列和重组可用数据。
3. 现在,您必须开发一个您将使用的数据库。
4. 在这里,您将能够合并、删除和修改可用信息。
5. 最后,分析可用数据并从中生成有用的信息。