R语言学习笔记10-向量-矩阵-数组-数据框-列表对比

R语言学习笔记10-向量-矩阵-数组-数据框-列表对比

在R语言中,对于常用的数据结构:向量、矩阵、数组、数据框和列表,它们在数据处理和分析中各有不同的应用和特点,有时候在理解上会容易搞混,所以打算单独整理下他们的结构对比,用于加深理解

向量(Vector)

向量是R中最基本的数据结构,可存储相同类型的元素

  • 格式示例:
r 复制代码
# 数值型向量
numeric_vector <- c(1, 2, 3, 4, 5)

# 字符型向量
character_vector <- c("Alice", "Bob", "Charlie")
> numeric_vector
[1] 1 2 3 4 5
> character_vector
[1] "Alice"   "Bob"     "Charlie"
  • 特点:
    • 只能包含同一种数据类型的元素
    • 可以是数值型、字符型、逻辑型等

矩阵(Matrix)

矩阵是由相同数据类型的元素按行列组成的二维数据结构

  • 格式示例:
r 复制代码
# 创建一个3行2列的数值型矩阵
numeric_matrix <- matrix(1:6, nrow = 3, ncol = 2)

# 创建一个2行3列的字符型矩阵
character_matrix <- matrix(c("A", "B", "C", "D", "E", "F"), nrow = 2, ncol = 3)    
> numeric_matrix
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6
> character_matrix
     [,1] [,2] [,3]
[1,] "A"  "C"  "E" 
[2,] "B"  "D"  "F" 
  • 特点:
    • 所有元素必须是相同的数据类型
    • 可以通过行和列来访问元素

数组(Array)

数组是由相同类型的元素组成的多维数据结构

  • 格式示例:
r 复制代码
# 创建一个3维数组,每维度为2x2的数值型数组
numeric_array <- array(1:12, dim = c(2, 2, 3))
> numeric_array
, , 1

     [,1] [,2]
[1,]    1    3
[2,]    2    4

, , 2

     [,1] [,2]
[1,]    5    7
[2,]    6    8

, , 3

     [,1] [,2]
[1,]    9   11
[2,]   10   12
  • 特点:
    • 可以有多个维度,每个维度可以有不同的长度
    • 所有元素必须是相同的数据类型

数据框(Data Frame)

数据框是R中常用的二维表格型数据结构,类似于数据库中的表格,每列可以是不同类型的数据(例如数值、字符、因子等)

  • 格式示例:
r 复制代码
# 创建一个数据框
df <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 30, 28),
  gender = c("F", "M", "M")
)
> df
     name age gender
1   Alice  25      F
2     Bob  30      M
3 Charlie  28      M
  • 特点:
    • 可以存储不同类型的数据
    • 列名可以用来访问列数据

列表(List)

列表是一种复合数据结构,可以包含不同类型的数据对象,每个元素可以是向量、矩阵、数据框或其他列表等

  • 格式示例:
r 复制代码
# 创建一个列表
my_list <- list(
  numeric_vector = c(1, 2, 3),
  character_vector = c("Alice", "Bob", "Charlie"),
  numeric_matrix = matrix(1:4, nrow = 2),
  df = data.frame(
    name = c("Alice", "Bob"),
    age = c(25, 30)
  )
)
> my_list
$numeric_vector
[1] 1 2 3

$character_vector
[1] "Alice"   "Bob"     "Charlie"

$numeric_matrix
     [,1] [,2]
[1,]    1    3
[2,]    2    4

$df
   name age
1 Alice  25
2   Bob  30
  • 特点:
    • 可以包含不同类型和结构的元素
    • 可以通过名称或索引来访问每个元素

综合分析和对比

  • 存储内容:

    • 向量、矩阵和数组主要用于存储数值、字符等基本数据类型
    • 数据框用于存储表格型数据,每列可以有不同的数据类型
    • 列表则是一种更为灵活的结构,可以混合存储各种数据类型和结构
  • 访问方式:

    • 向量、矩阵、数组通过索引来访问元素
    • 数据框通过列名或列索引来访问列数据
    • 列表通过名称或索引来访问每个元素,元素可以是任意R对象
  • 应用场景:

    • 使用向量、矩阵和数组进行数值计算和统计分析
    • 使用数据框进行数据整理、分析和可视化
    • 使用列表对复杂的数据结构进行管理和操作,适合于存储和传递不同类型的数据对象
相关推荐
壹Y.3 小时前
非线性规划学习笔记
学习·数学建模
好学且牛逼的马3 小时前
GOLANG 接口
开发语言·golang
ahauedu3 小时前
AI资深 Java 研发专家系统解析Java 中常见的 Queue实现类
java·开发语言·中间件
韭菜钟3 小时前
在Qt中用cmake实现类似pri文件的功能
开发语言·qt·系统架构
暗流者3 小时前
AAA 服务器与 RADIUS 协议笔记
运维·服务器·笔记
项目題供诗3 小时前
React学习(十二)
javascript·学习·react.js
闲人编程3 小时前
Python第三方库IPFS-API使用详解:构建去中心化应用的完整指南
开发语言·python·去中心化·内存·寻址·存储·ipfs
艾莉丝努力练剑4 小时前
【C语言16天强化训练】从基础入门到进阶:Day 7
java·c语言·学习·算法
Ro Jace4 小时前
科研笔记:博士生手册
笔记
CTRA王大大4 小时前
【golang】制作linux环境+golang的Dockerfile | 如何下载golang镜像源
linux·开发语言·docker·golang