Logo
Section 1 / 11

R 中的数据框

学习如何从不同的数据对象创建数据框。

导入

R 中的数据框

学习如何从不同的数据对象创建数据框。

数据框的特性

...

数据框是数据分析中常用的基本数据结构。 **数据框** 是一种二维结构,由行和列组成。所有列的行数相同,反之亦然。行和列都有唯一标识,这使得我们可以定位每个值。 唯一的行名称或编号组成的数组称为 `index`,而缺失值默认用 `NA` 表示。

数据框可以包含多种数据类型,但同一列中的所有元素必须为相同类型。

由于数据框的结构,我们可以以相对简单的方式对数据进行操作,并执行各种统计分析。它们还提供了一种方便的方式来以表格形式可视化数据。此外,我们可以对多个数据框进行连接、合并和筛选操作,使分析更加全面。

从不同对象创建数据框

data.frame() 函数可用于创建数据框。在 R 中,我们可以将大多数对象(如列表、矩阵等)转换为数据框。

从向量创建数据框

一个通用的数据框结构如下:

1myDf <- data.frame(name=c("Kai", "Jay", "Rosa"), age=c(25,22,32), 2education=c("Masters", "Bachelors"," Ph.D."))

使用向量创建数据框是一种高效且灵活的方法,因为这种方法与数据框的结构一致。向量代表数据框中的各个列,其功能也类似。

向量为数据框提供了灵活性,在创建阶段允许添加额外数据。我们始终可以向向量中追加更多数据,因此它们是存储数据的理想选择。

...
使用向量创建数据框

上图展示了三个不同的向量如何垂直翻转后横向合并,形成一个新的数据框。

1# 从向量创建数据框 2myDf <- data.frame(gym_name=c('Mcfit','Equinox'), 3 subscription=c('Gold','Premium')) 4print(myDf) 5 6print('-----------------------------------------------') 7# 创建上图所示的数据框 8names <- c('Kai','Jay','Rosa') # 创建“姓名”列 9ages <- c(25,22,32) # 创建“年龄”列 10ed <- c("Master's","Bachelor's","PhD") # 创建“教育程度”列 11# 指定列名并将向量赋给对应列名 12myDf1 <- data.frame(Name=names,Age=ages,Education=ed) 13print(myDf1) # 打印新创建的数据框

从矩阵创建数据框

可以通过将矩阵传递给 data.frame() 函数来创建数据框。矩阵具有行和列结构,可以轻松转换为数据框,同时轴的名称也会被保留到数据框中。

由于矩阵的结构,其列中的元素必须为相同的数据类型。虽然矩阵无法实现这一点,但在将对象转换为数据框后,我们可以更改每列的数据类型。

...
使用矩阵创建数据框

上图展示了矩阵转化为数据框的过程。
下方代码演示了如何创建矩阵并将其转换为数据框。

1# 创建带有列名和索引的矩阵 2myMatrix <- matrix(c(c('France','Spain'),c('Croissant','Paella')),nrow=2, 3 dimnames = list(c(1,2),c('Country','Food'))) 4print(class(myMatrix)) # 检查数据类型 5# 将矩阵转换为数据框 6myDf <- data.frame(myMatrix) # 将矩阵传入 data.frame() 函数 7print(class(myDf)) # 检查新对象的类 8print(myDf) # 打印数据框

从列表创建数据框

只要列表中各元素的长度相等,就可以从列表创建数据框。列表元素的名称会直接转换为列名,列表的值则转换为列的值。如果列表元素没有名称,则列名将基于列对象的字符串形式自动生成。

...
使用列表创建数据框

上图显示,列表中的每个元素都会成为数据框的一列。列表可以容纳多种数据类型,这种多样性也体现在数据框的列中,意味着从列表创建的数据框中,某一列内的元素类型可能不一致。

1# 创建带有名称的列表 2myList <- list(Country=c('England','Sweden','Japan'), 3 Capital=c('London','Stockholm','Tokyo')) 4# 将列表转换为数据框 5print(class(myList)) # 打印容器的类型 6myDf <- data.frame(myList) # 将列表转换为数据框 7print(class(myDf)) # 检查新容器的类型 8print(myDf) # 打印容器

掌握多种创建数据框的方法可以显著提升我们的工作效率。由于数据框在数据分析中是最常用的对象,熟练运用它们具有极高的价值。

数据结构

使用 R 修改数据框