R中最常用的六种数据结构
已发表: 2020-02-03作为软件程序员和编码员,您必须意识到需要变量来存储数据。 这些变量保留在不同的内存位置以存储值。 因此,创建变量意味着在内存中保留一些空间。 正是这些数据按数据结构排列,以便在计算机中有效使用。
与 C 和 Java 等流行的编程语言不同,R 没有要声明为数据的变量。 R 具有成为所需变量的数据类型的 R 对象(数据结构)。 R中有各种类型的数据结构。但首先,让我们了解什么是数据结构!
目录
什么是数据结构?
在 R 中,数据结构是一个保存多个值的工具。 请注意,在 R 编程中,很少使用具有单个值的数据。 使用 R 将不同类型的多个数字、单词或值组合在一起更为可行。 这就是数据结构发挥作用的地方。 它们将这些多个值组合在一起,以便更轻松地一次处理大量数据。
数据结构由定义存储在 zvalue 中的数据类型的数据类型组成。 例如,数字13是数字数据类型,而“十三”具有字符数据类型,也称为字符串。
现在您已经掌握了这一点,让我们看看不同的数据结构类型。
数据结构的类型
为了使数据分析和操作变得简单高效,R编程中有五种主要的数据结构类型。

让我们详细看看它们中的每一个。
- 向量
R Vectors 的作用是对同一数据类型的多个值进行分组。 它是 R 中最基本的数据结构类型,有两部分:原子向量和列表。 以下是它们的共同属性:
- 功能类型(它是什么)
- 函数长度(元素数量)
- 函数的属性(附加的任意元数据)
现在,虽然原子向量用于合并相同的数据类型,但列表可以对不同的数据类型进行分组。 有四种类型的原子向量:
- 数值数据类型
- 整数数据类型
- 字符数据类型
- 逻辑数据类型
您可以使用函数 c() 创建向量。
例如:
如果您运行上述代码,将创建一个名为“thisVector”的向量,其中包含从 1 到 30 的所有数字。
要将字符值存储在 Vector 中,您必须使用双引号,如下所示:
虽然您可以在向量中存储不同类型的数据,但建议您不要将所有值都转换为字符类型。
- 列表
如上所述,列表可以包含任何类型的数据元素——字符串、数字、向量,甚至是另一个列表。 例如,您可以创建一个包含 80 个数字、30 个单词和 42 个向量的列表。 要使用的函数是 list()。
例子:
输出:
由于列表也可以有其他列表,它们有时被称为递归向量。 这就是为什么它们与原子向量非常不同的原因。
- 因素
简单地说,因子是一种向量,其中只能存储预定义的值。 它主要用于存储分类数据。 它们对列值进行分类,例如“男性”、“女性”、“真”、“假”等。

因子是异构的,因为字符串和整数都可以存储在其中。 要创建因子,请使用 factor() 函数。 当特定变量有很多可能的值并且您都知道它们时,它们非常有用。
在 R 编程中,字符向量会自动转换为向量。 您可以使用stringsAsFactors = FALSE来抑制这种情况,然后手动将每个字符向量转换为因子。
- 数据框
R中的这种数据结构用于以表格形式表示数据,以使数据分析更容易。 它包含等长的向量,从而形成一个二维结构。 有包含变量值的列和包含每列的一组值的行。
自然地,数据帧可以存储不同数据类型的值。 但是,每列必须具有相同数量的元素。 例如,如果第 1 列有 5 个元素,则第 2 列也应该有 5 个值。
数据框有一些特殊的特征:
- 列名不应为空。
- 每行的名称必须是唯一的。
- 您可以将数值、因子或字符类型数据存储在数据框中。
- 所有列必须包含相同数量的数据元素。
在 R 中导入的所有数据集都会自动存储为数据框。
- 矩阵
R 中的矩阵数据结构介于向量和数据帧之间。 矩阵是二维数据集,只能包含相同数据类型的元素。 您可以使用函数 matrix () 创建矩阵。
语法:矩阵(数据,nrow,ncol,byrow,dimnames)
这里,
data = 作为向量的输入元素
nrow = 行数
ncol = 列数
byrow = 按行排列
dimnames = 列/行的名称
例子:
输出:
尽管因子看起来和行为类似于字符向量,但它们实际上是整数。 要将因子转换为字符串,请使用 gsub() 和 grepl() 等函数。 使用 nchar() 会出错。
- 数组
数组是多维矩阵。 矩阵是数组的一种特殊情况,因为它有两个维度。 虽然通常使用矩阵,但数组非常罕见。
创建数组的函数是array()。
测试一个对象是矩阵还是数组非常简单。 只需使用 is.matrix() 或 is.array() 函数。
练习
既然您已经获得了有关 R 中数据结构的足够知识,那么您可以尝试回答以下一些问题。
- 数据框的属性是什么?
- 数据框可以包含 0 行或列吗?
- R中有哪些不同类型的原子向量?
- 原子向量和列表有什么区别?
- 在 R 中创建一个 4X3 矩阵。
通过电子邮件将您的答案发送给我们,或将它们写在下面的评论中!

结论
为了充分利用 R 语言,对数据类型、数据结构及其工作方式的正确理解非常重要。 这些项目是 R 中所有活动的前提。例如,大多数程序员遇到的一个典型问题是对象转换,只要对 R 对象有很好的了解就可以解决它。 必须注意的是,在 R 中,一切都是对象,操作都作为函数调用进行。
R 中的数据结构可以通过两种不同的方式进行分类。 排序数据结构的主要方法是通过它们的维度,可以是 1、2 或 n 维,随后的路线是通过它们可以是同质或异构的元素的性质。 同质结构中的每个元素都必须具有相似的种类,而在异质结构中,允许具有各种类型的元素。
在学习了 R 中数据结构的基础知识之后,您会发现使用 R 进行编程要容易得多。 数据结构是R的基础。上面提到了六种最常用的数据结构。 重要的是要记住每种类型的不同特征并实施它以分析数据并执行其操作。
如果您有兴趣了解有关大数据的更多信息,请查看我们的 PG 大数据软件开发专业文凭课程,该课程专为在职专业人士设计,提供 7 多个案例研究和项目,涵盖 14 种编程语言和工具,实用的动手操作研讨会,超过 400 小时的严格学习和顶级公司的就业帮助。
从世界顶级大学在线学习软件开发课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。