R语言是一种强大的数据分析工具,其核心在于丰富的数据结构。除了上一节我们详细介绍过的数据框(data frame),R 还有其他常用数据结构,每种结构都适用于不同的场景。以下是数据结构的分类及结合使用实例的详细解释。
向量(Vector)
向量是 R 中最基本的数据结构,用于存储一组相同类型的数据(数值型、字符型或逻辑型),比如变量的取值范围、分类标签等。
特点:元素类型一致;一维结构。
# 创建数值型向量
numeric_vector <- c(1, 2, 3, 4, 5)
# 创建字符型向量
char_vector <- c("A", "B", "C")
# 创建逻辑型向量
logical_vector <- c(TRUE, FALSE, TRUE)
# 访问向量元素
numeric_vector[2] # 输出: 2
矩阵(Matrix)
矩阵是二维的同质数据结构,所有元素必须为同一类型(数值型、字符型或逻辑型),适用于线性代数运算或二维同质数据的存储。
特点:元素类型必须一致;有行有列的二维结构。
# 创建矩阵
matrix_example <- matrix(1:9, nrow = 3, ncol = 3)
# 访问矩阵元素matrix_example[2, 3]
数组(Array)
数组是 R 中的多维同质数据结构,可以扩展到二维以上(矩阵是数组的特殊形式),适合存储和操作高维数据,比如图像处理中的像素值。
特点:元素类型一致,支持多维。
# 创建三维数组
array_example <- array(1:24, dim = c(2, 4, 3))#两行四列3层
array_example
# 访问数组元素
array_example[2, 3, 2]
列表(List)
列表是 R 中最灵活的数据结构,可以存储异构数据(不同类型和维度的数据)。
特点:元素类型可以不同;可以包含向量、矩阵、数据框,甚至其他列表,非常适合存储复杂结构化数据,比如分层数据或嵌套信息。。
# 创建列表
list_example <- list(name = "Alice", age = 25, scores = c(90, 85, 88))
# 访问列表元素
list_example$name # 输出: "Alice"
list_example$scores # 输出: c(90, 85, 88)
因子(Factor)
因子是用于处理分类数据的特殊数据结构。它存储离散的分类值,同时包含其可能的取值(levels),因子可以通过函数factor()
创建。
特点:用于存储分类变量;有序因子表示等级关系。
# 创建因子
factor_example <- factor(c("Low", "Medium", "High", "Low"))
# 查看因子取值
levels(factor_example) # 输出: "High" "Low" "Medium"
#如果想要把某个变量变成有序型变量,可以使用ordered=TRUE参数:
status <- factor(c("Poor","Improved","Excellent","Poor"),
ordered= T
)
status
综合示例
# 数据框和列表结合
students <- data.frame(
Name = c("Alice", "Bob"),
Scores = list(c(90, 85, 88), c(75, 80, 70))
)
students
# 矩阵与因子结合
grades <- matrix(c("A", "B", "C", "A"), nrow = 2)
grades_factor <- factor(grades)
# 向量操作与时间序列结合
time_series <- ts(cumsum(runif(10, min = -1, max = 1)), start = c(2023, 1), frequency = 12)
总结:以上就是R语言常用的数据结构,这些数据结构在程序中都是结合使用,要清楚掌握每个数据结构的特点,才能实现高效地数据预处理。
下期内容
下一节学习本系列“类型判断和转换”的内容