微信登录

数据结构 - 数据框 - 表格型数据的存储与处理

数据结构 - 数据框 - 表格型数据的存储与处理

一、引言

在数据分析和统计领域,数据通常以表格的形式存在。R 语言中的数据框(data frame)就是专门用于存储和处理这类表格型数据的重要数据结构。数据框类似于电子表格或数据库中的表,每一列可以是不同的数据类型(如数值型、字符型、逻辑型等),而每一行则代表一个观测值。本文将深入探讨数据框的创建、访问、修改以及常见的处理操作,并通过实际的代码演示来加深理解。

二、数据框的创建

2.1 使用 data.frame() 函数创建

data.frame() 是创建数据框最常用的函数,我们可以通过指定列名和对应的数据来创建一个数据框。

  1. # 创建一个简单的数据框
  2. students <- data.frame(
  3. Name = c("Alice", "Bob", "Charlie"),
  4. Age = c(20, 21, 22),
  5. Gender = c("Female", "Male", "Male")
  6. )
  7. # 查看数据框
  8. print(students)

上述代码创建了一个名为 students 的数据框,包含三列:Name(字符型)、Age(数值型)和 Gender(字符型)。运行代码后,会输出如下结果:

  1. Name Age Gender
  2. 1 Alice 20 Female
  3. 2 Bob 21 Male
  4. 3 Charlie 22 Male

2.2 从外部文件读取数据创建

除了手动创建,我们还可以从外部文件(如 CSV 文件)读取数据来创建数据框。

  1. # 读取 CSV 文件
  2. data <- read.csv("data.csv")
  3. # 查看数据框的基本信息
  4. str(data)

这里假设当前工作目录下存在一个名为 data.csv 的文件。read.csv() 函数会将 CSV 文件的内容读取为一个数据框,str() 函数用于查看数据框的基本信息,包括列名、数据类型和行数等。

三、数据框的访问

3.3 按列名访问

可以使用 $ 符号或 [[]] 来按列名访问数据框的某一列。

  1. # 使用 $ 符号访问 Age 列
  2. ages <- students$Age
  3. print(ages)
  4. # 使用 [[]] 访问 Gender 列
  5. genders <- students[["Gender"]]
  6. print(genders)

3.4 按行和列索引访问

使用 [行索引, 列索引] 的方式可以访问数据框中的特定元素或子集。

  1. # 访问第 2 行第 3 列的元素
  2. element <- students[2, 3]
  3. print(element)
  4. # 访问第 1 行和第 3 行的所有列
  5. subset_rows <- students[c(1, 3), ]
  6. print(subset_rows)
  7. # 访问第 2 列和第 3 列的所有行
  8. subset_cols <- students[, c(2, 3)]
  9. print(subset_cols)

四、数据框的修改

4.1 修改列名

可以使用 names() 函数来修改数据框的列名。

  1. # 修改列名
  2. names(students) <- c("StudentName", "StudentAge", "StudentGender")
  3. print(students)

4.2 添加新列

可以通过赋值的方式为数据框添加新列。

  1. # 添加新列:成绩
  2. students$Score <- c(85, 90, 78)
  3. print(students)

4.3 删除列

可以使用 NULL 赋值的方式删除数据框中的某一列。

  1. # 删除 Score 列
  2. students$Score <- NULL
  3. print(students)

五、数据框的常见处理操作

5.1 排序

使用 order() 函数可以对数据框按某一列进行排序。

  1. # 按年龄升序排序
  2. sorted_students <- students[order(students$StudentAge), ]
  3. print(sorted_students)

5.2 筛选

可以使用逻辑条件来筛选数据框中的数据。

  1. # 筛选出年龄大于 20 的学生
  2. filtered_students <- students[students$StudentAge > 20, ]
  3. print(filtered_students)

5.3 汇总统计

使用 summary() 函数可以对数据框进行汇总统计。

  1. # 汇总统计
  2. summary(students)

六、总结

操作 描述 示例代码
创建数据框 使用 data.frame() 函数或从外部文件读取 students <- data.frame(Name = c("Alice", "Bob"), Age = c(20, 21))
访问数据框 按列名或行和列索引 students$Agestudents[1, 2]
修改数据框 修改列名、添加或删除列 names(students) <- c("NewName", "NewAge")students$Score <- c(80, 90)
处理操作 排序、筛选、汇总统计 students[order(students$Age), ]students[students$Age > 20, ]summary(students)

数据框是 R 语言中处理表格型数据的核心数据结构,掌握数据框的创建、访问、修改和处理操作对于数据分析和统计工作至关重要。通过本文的介绍和代码演示,希望读者能够对数据框有更深入的理解和掌握。