跳转到主要内容
模块 2 · 第 1 课(共 2)课程中的3/10~12 min
模块课程(1/2)

数据框

与只能包含单一类型元素的矩阵不同,数据框代表 R 中用于分析现实数据的最广泛使用的表格数据结构。

数据框是一个表,其中每列可以包含不同的数据类型(例如数字列、文本列和逻辑列),但所有列必须具有相同的长度。

创建数据框

要创建数据框,请使用 data.frame() 函数,定义列名称并为其分配向量:

R
# Create a sample data frame
students <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  grade = c(28, 24, 30),
  passed = c(TRUE, TRUE, TRUE)
)
print(students)

访问列和行

有多种方法可以提取和操作数据框中的数据:

  1. 使用美元运算符 $:允许提取单个列作为向量。
    R
    grades <- students$grade
    # grades will be the vector c(28, 24, 30)
  2. 使用方括号[row, column]:与矩阵类似。
    R
    # First student (first row)
    first_student <- students[1, ]

过滤数据

R 的优势之一是能够根据逻辑条件过滤记录:

R
# Select only students with grade greater than 25
good_students <- students[students$grade > 25, ]
print(good_students)

尺寸标注和修改数据框

要查找数据框的维度(行数和列数),我们可以使用 dim() 函数:

R
# Returns a vector with two elements: c(rows, columns)
dimensions <- dim(students)

我们还可以直接使用 $ 运算符添加新列或更新现有列:

R
# Adds a column with grades increased by 2 points
students$bonus_grade <- students$grade + 2

自己尝试一下

锻炼#r.m2.l1.e1
尝试:0加载中...

创建一个名为 Students 的数据框,其中包含两列:姓名(值为“Alice”和“Bob”)和成绩(值为 28 和 24)。

正在加载编辑器...
显示提示

使用 data.frame 函数:students <- data.frame(name = c('Alice', 'Bob'),grade = c(28, 24))

3 次尝试后可用的解决方案

锻炼#r.m2.l1.e2
尝试:0加载中...

给定数据框学生,使用 $ 运算符提取成绩列并将其保存在grades_vector 变量中。

正在加载编辑器...
显示提示

美国 l'operatore $:grades_vector <- Students$grade

3 次尝试后可用的解决方案

锻炼#r.m2.l1.e3
尝试:0加载中...

过滤数据框学生,仅包含成绩大于或等于 26 的学生,并将结果保存在 good_students 中。

正在加载编辑器...
显示提示

使用students[students$grade >= 26, ],不要忘记逗号来选择所有列。

3 次尝试后可用的解决方案

锻炼#r.m2.l1.e4
尝试:0加载中...

给定数据框 df,使用 dim() 函数获取其尺寸并将其保存在变量 df_dim 中。

正在加载编辑器...
显示提示

使用 dim() 函数:df_dim <- dim(df)

3 次尝试后可用的解决方案

锻炼#r.m2.l1.e5
尝试:0加载中...

给定数据框库存,添加一个名为 Total_value 的新列,该列计算为价格列和数量列的乘积。

正在加载编辑器...
显示提示

使用:库存$total_value <- 库存$价格 * 库存$数量

3 次尝试后可用的解决方案