当前位置: 首页 > news >正文

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

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

  • 向量(Vector)
  • 矩阵(Matrix)
  • 数组(Array)
  • 数据框(Data Frame)
  • 列表(List)
  • 综合分析和对比

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

向量(Vector)

向量是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)

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

  • 格式示例:
# 创建一个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)

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

  • 格式示例:
# 创建一个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中常用的二维表格型数据结构,类似于数据库中的表格,每列可以是不同类型的数据(例如数值、字符、因子等)

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

列表(List)

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

  • 格式示例:
# 创建一个列表
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$dfname age
1 Alice  25
2   Bob  30
  • 特点:
    • 可以包含不同类型和结构的元素
    • 可以通过名称或索引来访问每个元素

综合分析和对比

  • 存储内容:

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

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

    • 使用向量、矩阵和数组进行数值计算和统计分析
    • 使用数据框进行数据整理、分析和可视化
    • 使用列表对复杂的数据结构进行管理和操作,适合于存储和传递不同类型的数据对象

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 神经网络中如何优化模型和超参数调优(案例为tensor的预测)
  • 【HarmonyOS开发】弹窗交互(promptAction )
  • opencv,连续拍摄多张图像求平均值减少噪点
  • 均值滤波算法及实现
  • Matlab演示三维坐标系旋转
  • Python基础语法篇(下)+ 数据可视化
  • 【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(上)
  • 前端表格解析方法
  • Python酷库之旅-第三方库Pandas(037)
  • 【iOS】内存对齐
  • Windows版MySQL5.7解压直用(如何卸载更换位置重新安装)
  • 六边形动态特效404单页HTML源码
  • C语言-网络编程-UDP通信创建流程
  • 大数据之数据抽取架构演变过程
  • 数据结构 —— B树
  • hexo+github搭建个人博客
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 77. Combinations
  • Java 23种设计模式 之单例模式 7种实现方式
  • Java多态
  • JS学习笔记——闭包
  • scrapy学习之路4(itemloder的使用)
  • Solarized Scheme
  • Spring Boot MyBatis配置多种数据库
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • Zsh 开发指南(第十四篇 文件读写)
  • 对JS继承的一点思考
  • 复杂数据处理
  • 前嗅ForeSpider中数据浏览界面介绍
  • Java总结 - String - 这篇请使劲喷我
  • 数据库巡检项
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​iOS安全加固方法及实现
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • # Redis 入门到精通(一)数据类型(4)
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (ZT)一个美国文科博士的YardLife
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (二十六)Java 数据结构
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (三)终结任务
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)linux 命令大全
  • (转)大道至简,职场上做人做事做管理
  • (转)关于多人操作数据的处理策略
  • **python多态
  • .gitignore
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法