2. 矩阵(matrix)、数组、列表(list)、数据框(data.frame.....)

news2024/11/19 23:13:26

课程视频链接:https://www.bilibili.com/video/BV19x411X7C6?p=1
本笔记参照该视频,笔记顺序做了些调整【个人感觉逻辑顺畅】,并删掉一些不重要的内容
系列笔记目录【持续更新】:https://blog.csdn.net/weixin_42214698/category_11393896.html

文章目录

  • 1.矩阵
    • (1)创建矩阵
    • (2)给矩阵的行列命名
    • (3)返回矩阵的行列数
    • (4)矩阵的索引
    • (5)矩阵的运算
  • 2.数组【其实就是多维的矩阵】
  • 3.列表 【就是一些对象的有序集合。每一个对象都是列表子集?】
  • 4.数据框【是一种表格式的数据结构,数据框旨在模拟数据集】

1.矩阵

矩阵是二维的,需要有行和列。向量是一维的。
在R软件中,矩阵是有维数的向量,这里的矩阵元素可以是数值型、字符型或者逻辑型,但是每个元素必须拥有相同的模式,这个和向量一致。

(1)创建矩阵

m <- matrix(1:20,4,5)
行数和列数的分配必须满足分配条件。若分配的行列过大或过小,则报错。
在这里插入图片描述

m <- matrix(1:20,4,5,byrow=T)
byrow为TRUE为按行进行排列。默认按列进行排列。
在这里插入图片描述

(2)给矩阵的行列命名

rnames <- c(“R1”,“R2”,“R3”,“R4”)
cnames <- c(“C1”,“C2”,“C3”,“C4”,“C5”)
dimnames(m) <- list(rnames,cnames)
在这里插入图片描述

(3)返回矩阵的行列数

dim(m)
在这里插入图片描述



(4)矩阵的索引

m <- matrix(1:20,4,5,byrow=T) #按行优先
m[1,2]:访问第1行,第2列元素。
m[1,c(2,3,4)]:访问第1行,第234列元素。
m[c(2:4),c(2,3)]:输出矩阵的一个子集。
m[2,]:访问第2行。
m[-1,2]:去除第1行再取第2列。
注意:如果矩阵的行和列具有名称属性,也可以通过名称来访问矩阵。



(5)矩阵的运算

两矩阵的四则运算,需要两矩阵的行和列一致。
colSums(m):计算矩阵每列的和。
rowSums(m):计算矩阵每行的和。
colMeans(m):计算矩阵每列的平均值。
rowMeans(m):计算矩阵每行的平均值。

n <-matrix(1:9,3,3)
t <- matrix(2:10,3,3)
n * t:矩阵内积,两矩阵对应位置相乘。
n %*% t:矩阵外积,线性代数中的矩阵乘积。

diag(n):返回方阵对角线位置的值。
t(n):t函数能够对矩阵进行转置,将行和列进行互换。



2.数组【其实就是多维的矩阵】

二维数组:
x <- 1:20
在这里插入图片描述

三维数组:
在这里插入图片描述

数组可以利用array函数进行创建:
在这里插入图片描述



3.列表 【就是一些对象的有序集合。每一个对象都是列表子集?】

在其他编程语言中,列表一般和数组等同,但在R语言中,列表却是R中最复杂的一种数据结构,也是非常重要的一种数据结构。
列表中可以存储若干向量、矩阵、数据框,甚至其他列表的组合。

与向量的区别:
- 在模式上和向量类似,都是一维数据集合。
- 向量只能存储一种数据类型,列表中的对象可以是R中的任何数据结构,甚至列表本身

列表创建:mlist <- list(a,b,c,d)
创建列表时为列表中的每个对象命名:mlist <- list(first=a,second=b,third=c,forth=d)

访问列表:
mlist[1]:访问列表第1个元素。
mlist[c(1,4)]:访问列表第1和第4个元素。
mlist[c(“first”,“third”)]:通过列表中的对象名访问对象。
mlist$first:通过列表中的对象名访问对象。

注意:对于mlist[1]和mlist[[1]],两者返回的对象内容是一样的,
但是mlist[1]返回的对象类型是列表(列表子集),而mlist[[1]]返回的对象类型是其在mlist列表中本身的类型

插入元素(对象):
mlist[[5]] = e # 双括号

删除元素(对象):
mlist[[5]] <- NULL 或 mlist <- mlist[-5]



4.数据框【是一种表格式的数据结构,数据框旨在模拟数据集】

数据集通常是由数据构成的一个矩形数组。行表示观测,列表示变量。就是说法不一样,观测指的就是行,变量指的是列
数据框实际上是一个列表。列表中的元素是向量,这些向量构成数据框的列,
每一列必须具有相同的长度,所以数据框是矩形结构,而且数据框的列必须命名

补充个人理解:
⭐️⭐️每一个对象 都是列表子集,列表子集=【列名 + 向量(即元素)】* 1~n

与矩阵的区别:
- 数据框形状上很像矩阵;
- 数据框是比较规则的列表;
- 矩阵必须为同一数据类型;
- 数据框每一列必须同一类型 ,列与列的类型可以不同

如:
在这里插入图片描述

数据框的创建:
state <- data.frame(state.name,state.abb,state.region,state.x77)

数据框的访问:
state[1]:输出数据框的第1列。
state[c(2,4)]:输出数据框的第2和第4列。
state[-c(2,4)]:输出除第2和第4列的其他列。

state[,“state.abb”]:利用列的名字 输出列的内容。
state$state.name:利用列的名字输出列的内容。
state[“Alabama”,]:利用行的名字 输出行的内容。

attach函数:加载数据框到R的搜索目录中。加载后,就可以在命令窗口中直接输入数据框列的名字就可以访问对应列。
detach函数:取消加载的数据框。
如:
attach(mtcars) #加载mtcars数据框
mpg #输入该数据框中列名为“mpg”的列
detach(mtcars) #取消加载mtcars数据框

with(数据框,{列名}):也可以访问数据框的某列。

注意:对于state[1]和state[[1]],两者返回的对象内容是一样的,但是返回的对象类型是不同的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147674.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑总是开机黑屏,开机两次才能成功的解决办法:更新BIOS(七彩虹H410M-T PRO)

参考&#xff1a;七彩虹主板更新BIOS的方法 前段时间电脑出问题了&#xff0c;每当我第一次开机都会黑屏&#xff0c;要强制关机第二次开能开机&#xff0c;导致每次都开机很久很久&#xff0c;心情也不好 有时候开机等他一会&#xff0c;大概两分钟&#xff0c;会报如下错误&a…

C++课程成绩管理与分析系统[2023-01-07]

C课程成绩管理与分析系统[2023-01-07] C实习指导书 编写&#xff1a;潘林 修订&#xff1a;邓吉秋 一、实习目的 学生通过此次实习&#xff0c; 应达到如下要求&#xff1a; 熟练使用一种 C开发环境&#xff0c;包括 IDE 与编译器&#xff1b;掌握 C程序的编写 过程与调试&…

Sentinel 是什么

Sentinel是什么 Sentinel 官网&#xff1a;introduction | Sentinel 随着微服务的流行&#xff0c;服务与服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征 丰富…

Rancher部署分布式任务调度系统XXL-JOB通过拉取Docker公共镜像方式

通过Rancher部署分布式任务调度系统XXL-JOB我了解到有两种方式&#xff0c;一种是拉取xxl-job的源代码打包通过Jenkins部署&#xff0c;另一种简单的是直接拉取官方镜像&#xff0c;本文主要讲后面这种。 1、打开Docker公共镜像仓库&#xff0c;搜索xxl-job&#xff0c;复制镜…

GNN笔记系列 3

GNN笔记系列 21.Graph1.1Directed Graphs1.2Symmetric Graphs1.3Unweighted Graphs2.Graph Shift Operators(GSO)2.1Degree Matrix2.2Laplacian Matrix2.3Graph Shift Operator SSS3.Graph Signals4.Graph Convolutional Filters5.Time convolutions and graph convolutions6.G…

itertools包介绍——可以不用 但不能不知道——python包推荐系列

背景1 今天在看一个开源包&#xff0c;发现他的requirements.txt里面放着more_itertools包。 这个包的名字还是挺有意思的&#xff0c;在itertools包前面加上了一个more。难道是python自带的包itertools的加强版&#xff1f; 后来查了一下&#xff0c;这个包&#xff0c;果然…

高并发系统设计的15个锦囊

记得很久之前&#xff0c;去面试过字节跳动。被三面的面试官问了一道场景设计题目&#xff1a;如何设计一个高并发系统。当时我回答得比较粗糙&#xff0c;最近回想起来&#xff0c;所以整理了设计高并发系统的15个锦囊&#xff0c;相信大家看完会有帮助的。 如何理解高并发系统…

【云原生 | 51】Docker三剑客之Docker Compose第二节

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

打卡第11天|力扣20. 有效的括号 、 1047. 删除字符串中的所有相邻重复项 、150. 逆波兰表达式求值 。

今天是打卡第十一天&#xff0c;题目主要是栈结构的运用20. 有效的括号题目链接如下&#xff1a;20. 有效的括号我们挨个遍历字符串&#xff0c;每有一个向左的字符串我们就往栈里面存一个向右的括号&#xff0c;遍历到向右的括号时&#xff0c;如果栈中类型相同就弹出&#xf…

在日本之后,中国也发布新型光刻机,ASML加快对中国出口光刻机

由于美国的影响&#xff0c;ASML对中国出售光刻机一直都在摇摆之中&#xff0c;不过2022年底至少有三家中国芯片企业获得ASML的光刻机&#xff0c;显示出ASML的态度再次发生变化&#xff0c;导致如此结果或许在于中国近期宣布的新型光刻机。一、开辟芯片制造新技术说到绕开ASML…

2022年9月CSP认证题解 如此编码(k进制),何以包邮?(背包问题),吉祥物投票(珂朵莉树、懒标记、并查集)

T1 如此编码 思路 由公式 和前缀乘积定义 得mb1a1b2⋅⋅⋅a1a2⋅⋅⋅an−1bnmb_1a_1\times b_2a_1\times a_2\times\times a_{n-1}\times b_nmb1​a1​b2​⋅⋅⋅a1​a2​⋅⋅⋅an−1​bn​&#xff0c; 上述公式可以提取公共乘项aia_iai​&#xff0c;写成m(bnbn−1⋅⋅⋅…

一文搞懂内存映射原理及使用方法

a. 内存映射原理内存映射即在进程的虚拟地址空间中创建一个映射&#xff0c;分为两种&#xff1a;文件映射&#xff1a;文件支持的内存映射&#xff0c;把文件的一个区间映射到进程的虚拟地址空间&#xff0c;数据源是存储设备上的文件。匿名映射&#xff1a;没有文件支持的内存…

2. 因子(factor)、缺失数据(na)、字符串、时间序列数据

课程视频链接&#xff1a;https://www.bilibili.com/video/BV19x411X7C6?p1 本笔记参照该视频&#xff0c;笔记顺序做了些调整【个人感觉逻辑顺畅】&#xff0c;并删掉一些不重要的内容 系列笔记目录【持续更新】&#xff1a;https://blog.csdn.net/weixin_42214698/category_…

字符的编码与乱码

目录 前言 1 计算机中字符的编码分类 1.1 常见非Unicode编码 1.1.1 ASCII 1.1.2 ISO 8859-1 1.1.3 Windows-1252 1.1.4 GB2312 1.1.5 GBK 1.1.6 GB18030 1.1.7 Big5 1.1.8 编码汇总 1.2、Unicode编码 1.2.1 UTF-32 1.2.2 UTF-16 1.2.3 UTF-8 1.2.4 Unicode编码…

A1032 Sharing

Powered by:NEFU AB-IN Link 文章目录A1032 Sharing题意思路代码A1032 Sharing 题意 To store English words, one method is to use linked lists and store a word letter by letter. To save some space, we may let the words share the same sublist if they share the s…

2032.1.7 学习总结

1.string与int之间的相互转化问题 &#xff08;1&#xff09;int转string&#xff1a;使用to_string函数 引入头文件: #include<string> 转int&#xff0c;float&#xff0c;double都可以 string to_string (int val); string to_string (long val); string to_string…

Java外卖点餐系统小程序+数据库源码(带本地部署搭建文档)源码免费分享!

亲测Java在线点餐系统小程序数据库源码带本地部署搭建文档 需要源码学习可私信我获取。 小程序外卖扫码点餐为客户提供的是最方便的饮食方式,以快速、便捷的点餐业务送货上门为 -客户服务,这省去了客户很多不必要的时间和麻烦,给商家带来更多利益。同时,小程序外卖扫码点餐可…

STM32从固件库到HAL库

让坚持成为一种热爱&#xff0c;极致成为一种精神。历时10个月&#xff0c;目前我又重新回到了程序员的身份&#xff0c;2023想玩不一样的嵌入式。&#x1f680; 目录前言一、安装STM32CubeMX二、配置自己的HAL库MDK工程三、HAL库与固件库的区别1.句柄2.回调函数3.时钟配置4.HA…

Bulma - 免费开源的纯 CSS 前端 UI 框架,专注于构建移动优先的响应式 web 界面

简单易用的 CSS 框架&#xff0c;虽然只有一个 CSS 文件&#xff0c;但功能很强大&#xff0c;在国外很受开发者欢迎&#xff0c;推荐给大家。 关于 Bulma CSS 框架 Bulma 是一个简单、很容易自定义的 CSS UI 框架&#xff0c;提供了众多预定义好的样式&#xff0c;开发者可以…

宠物吸毛器控制板开发,构建理想人宠共居空间

目前养宠物的人越来越多&#xff0c;猫狗等宠物一直存在着严重的掉毛情况&#xff0c;宠物毛发可能会引起过敏等疾病反应&#xff0c;日常生活中清理工作是一大难题&#xff0c;市面上关于宠物的吸毛产品非常的少&#xff0c;为此沐渥开发了一款宠物吸毛器控制板&#xff0c;适…