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

news/2024/9/23 3:21:24/

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对象
  • 应用场景:

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

http://www.ppmy.cn/news/1476820.html

相关文章

java通过pdf-box插件完成对pdf文件中图片/文字的替换

需要引入的Maven依赖: <!-- pdf替换图片 --><dependency><groupId>e-iceblue</groupId><artifactId>spire.pdf.free</artifactId><version>5.1.0</version></dependency> java代码: public AjaxResult replacepd…

针对【module_or_function】的单元测试,全面覆盖可能的【edge_cases】

针对【module_or_function】的单元测试&#xff0c;全面覆盖可能的【edge_cases】 编写单元测试是为了验证代码模块或函数的正确性和鲁棒性。对于module_or_function&#xff0c;首先需要确定这个模块或函数的具体功能和预期输入范围。一个好的单元测试应该包括以下几个步骤&a…

叉车指纹一键启动/熄火车辆,“锁”住叉车安全

在现代工业领域&#xff0c;叉车作为重要的物流搬运工具&#xff0c;其安全性和便捷性一直是人们关注的焦点。为此&#xff0c;我们引入了一项技术——叉车指纹一键启动/熄火系统&#xff0c;真正实现了叉车安全的“锁定”。 这项技术不仅仅是简单的启动或关闭车辆的手段&#…

c# listview控件调整标题显示顺序

右键点击listview,选择编辑列 修改DisplayIndex listview在成员位置点击上下箭头移动后&#xff0c;实际显示不会改变&#xff0c;因为DisplayIndex没有改变

PHP萌宠之家微信小程序系统源码

&#x1f43e;萌宠之家微信小程序&#x1f43e; —— 铲屎官们的温馨小窝✨ &#x1f3e0;【一键开启萌宠乐园】&#x1f3e0; 亲们&#xff0c;是不是每次刷手机都忍不住想看看那些软萌可爱的毛孩子&#xff1f;现在&#xff0c;有了“萌宠之家”微信小程序&#xff0c;你的…

计算机视觉9 全卷积网络

全卷积网络&#xff08;Fully Convolutional Network&#xff0c;简称 FCN&#xff09;在计算机视觉领域具有重要地位。 传统的卷积神经网络&#xff08;CNN&#xff09;在最后的输出层通常使用全连接层来进行分类任务。然而&#xff0c;全连接层会丢失空间信息&#xff0c;使得…

tg小程序前端-dogs前端源码分析

tg小程序前端-dogs前端源码分析 前端源码 index.html <!DOCTYPE html> <html lang="en"><head><script src="https://telegram.org/js/telegram-web-app.js" onload="window.Telegram.WebApp.expand(); window.Telegram.WebA…

Unity踩坑之RectTransformUtility.ScreenPointToLocalPointInRectangle

此方法会将屏幕坐标点转换为UI的本地坐标点&#xff0c;即UI子物体相对于父物体的相对位置。不过值得注意的是&#xff1a;当父物体的锚点不在中心时&#xff0c;可能比较麻烦&#xff0c;因为UI的本地坐标是相对于父物体的锚点来计算的。 RectTransformUtility.ScreenPointToL…