列表list

列表

列表是将数据组织在一个一维集合中,从这个组织方式来看,它与c()函数是相似的。但是,列表并不是将具体的值组织起来,而是组织R对象,如列表、数据框、矩阵、函数、向量等等。

列表非常好用,因为列表可以存放任何类型的数据,都不会出错,这使其成为R中全能型的存储工具。我们可以使用列表来存储任何类型的数据。在R自定义函数中,如果想要返回多个值,需要对返回结果创建一个list,中文为列表。 

1-创建列表

创建并填充一个列表:

list函数创建列表的方式和c函数创建向量的方式相似,不同的元素用逗号隔开。

创建列表方法1:

> lst <- list(0.5, 0.841, 0.977)
> lst
[[1]]
[1] 0.5[[2]]
[1] 0.841[[3]]
[1] 0.977

我自己的理解:可以将列表和c()函数结合来理解列表。c()是用来创建向量的,c意味着combine,将相同的数据类型结合在一起,构成一个向量。列表呢,允许有不同的数据类型,也就是说,构成列表的元素,可以是向量,字符串,数据框,列表。。。,任何R对象都是可以的。c()函数的每个元素只能放字符串、数字等,并且要求c()中的所有元素数据类型必须是一样的,术语为数据同质。可以将c()中的每个元素想象成一个房间,只能放一个东西的房间;将list()中的每个元素可以想象成一个三居室或者别墅,可以放多个东西的大house。

列表的返回值,使用双括号用于提示,现在展示的是列表的第几个元素,在这个元素下面存放的具体数据是什么,上面的这个R代码例子中,列表的每个元素存放的是数字,该列表共有三个元素。

列表的这种双括号索引系统,是因为列表的元素可以是任意一种R对象,这个R对象可能是一个自己有索引系统的向量或者列表。

列表可以包含复杂对象,而不仅仅是基本数据值。

例如:

mods <- list( lm(x ~ y1), lm(x~y2), lm(x~y3))

列表可以存放R的任何对象

> lst <- list(0.5, 0.841, 0.977)
> lst
[[1]]
[1] 0.5[[2]]
[1] 0.841[[3]]
[1] 0.977> lst <- list(3.14, "mod", c(1,4,3), mean)
> lst
[[1]]
[1] 3.14[[2]]
[1] "mod"[[3]]
[1] 1 4 3[[4]]
function (x, ...) 
UseMethod("mean")
<bytecode: 0x00000281e1d69b20>
<environment: namespace:base>

 上面这个例子中,可以看到,这个列表,存放了四个元素,第一个元素是个数字,第二个元素存放了一个字符串,第三个元素中存放了一个向量,第四个元素中存放了函数。

创建列表方法2:

可以先创建一个空的列表,然后将列表相应元素赋值来构造列表。

> lst <- lst()
> lst[[1]]  <- 3.14
> lst[[2]] <- "Moe"
> lst[[3]] <- c(1,1,2,3)
> lst[[4]] <- mean
> lst
[[1]]
[1] 3.14[[2]]
[1] "Moe"[[3]]
[1] 1 1 2 3[[4]]
function (x, ...) 
UseMethod("mean")
<bytecode: 0x00000281e1d69b20>
<environment: namespace:base>

注意:访问列表的元素,一定是列表名+双括号,可以想象成是拿到钥匙,进入这个大house,要往这个大house中存放东西。

列表元素可以明明,list函数允许为每个元素提供名称,c()函数中每个元素也可以提供名称。

> lst <- list(mid=0.5, right=0.84, far.right = 0.977)
> lst
$mid
[1] 0.5$right
[1] 0.84$far.right
[1] 0.977

 关于列表的记忆方法,在《R语言入门与实践》4.4节美元符号与双中括号中介绍到,“将列表对象想象成一列火车是十分有用的。使用单中括号相当于选择某节车厢(车头+车厢:还是一列火车,即还是一个列表,从数学集合概念角度理解,可以理解成单中括号得到的是 原始列表的子集,即仍是一个列表),而使用双中括号则相当于选择某节车厢里的的内容。(不带火车头,是里面存放的内容)”

2-访问列表

根据位置访问列表元素

lst[[n]] #访问列表的第n个元素的内容,返回的是列表第n个元素的内容
lst[n] #返回一个元素的列表,即是lst原始列表的子集lst[c(1,4,5)] #返回三个元素的列表,即是lst原始列表的子集#若name是列表某个元素的名字,可以通过美元号和双中括号访问
lst$name
lst[["name"]]

参考:

<R语言经典实例>(原书第2版)(2020年5月出版--机械工业出版社)(这本书不错,简短易懂。)

《R语言入门与实践》(2016年6月出版--人民邮电出版社)(这本书不错,对于初学/理解R对象(向量、数据框、矩阵、列表)非常有帮助!)

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

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

相关文章

打开域名跳转其他网站,官网被黑解决方案(Linux)

某天打开网站&#xff0c;发现进入首页&#xff0c;马上挑战到其他赌博网站。 事不宜迟&#xff0c;不能让客户发现&#xff0c;得马上解决 我的网站跳转到这个域名了 例如网站跳转到 k77.cc 就在你们部署的代码的当前文件夹下面&#xff0c;执行下如下命令 find -type …

Electron 系统通知 Notification 实践指南

系统通知是桌面应用的常见功能&#xff0c;用于给用户发送提醒&#xff08;刷下存在感 &#x1f642;&#xff09;&#xff0c;还能帮定点击事件以便后续的操作。 Electron 自带通知模块&#xff0c;下方代码是一个简单的示例 const { Notification } require(electron)cons…

电脑维护指南:让你的战友始终高效稳定

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

【Ansible】

目录 一、Ansible简介二、ansible 环境安装部署1、管理端安装 ansible 三、ansible 命令行模块&#xff08;重点&#xff09;1&#xff0e;command 模块2&#xff0e;shell 模块3、cron 模块4&#xff0e;user 模块5&#xff0e;group 模块6&#xff0e;copy 模块&#xff08;重…

【论文精读】Self-Attentive Assocative Memory,2020

目录 1 引言2 Outer product attention (OPA)3 Self-attentive Associative Memory (SAM)4 SAM-based Two-Memory Model (STM)4.1 M i M^i Mi写操作4.2 M r M^r Mr读操作4.3 M i M^i Mi读操作和 M r M^r Mr写操作过程4.4 用 M r M^r Mr实现item转移4.5 模型输出 o t o_t ot​…

c语言内存函数的深度解析

本章对 memcpy&#xff0c;memmove&#xff0c;memcmp 三个函数进行详解和模拟实现&#xff1b; 本章重点&#xff1a;3个常见内存函数的使用方法及注意事项并学会模拟实现&#xff1b; 如果您觉得文章不错&#xff0c;期待你的一键三连哦&#xff0c;你的鼓励是我创作的动力…

el-table数据处理

在写表格时遇到&#xff0c;后端返回的数据是对象&#xff0c;并且缺少字段 1.每一条数据加上 一个字段 2.将对象转成数组 以下是数据 {"groupA": {"groupName": null,"orgName": null,"orgId": null,"allPeoper": &quo…

C# 泛型(Generic)

方法重载&#xff1a;方法名称相同&#xff0c;参数个数和参数类型不同&#xff1b; 优势&#xff1a;可以节约方法名称 劣势&#xff1a;方法过多 语法&#xff1a;public void writeContent(T t) 原理&#xff1a;普通的C#代码他是运行在前端进行编译&#xff0c;所有的类型需…

IntersectionObserver实现小程序长列表优化

IntersectionObserver实现小程序长列表优化 关于 IntersectionObserver 思路 这里以一屏数据为单位【一个分页的10条数据&#xff0c;最好大于视口高度】&#xff0c; 监听每一屏数据和视口的相交比例&#xff0c;即用户能不能看到它 只将可视范围的数据渲染到页面上&#x…

[Spring]Spring声明式事务总结

文章目录 1、介绍2、Spring事务的隔离级别3、事务的传播行为4、Transactional注解包含的属性5、使用6、Transactional失效场景 1、介绍 声明式事务管理是建立在 AOP 之上的。其本质是通过 AOP 功能&#xff0c;对方法前后进行拦截&#xff0c;将事务处理的功能编织到拦截的方法…

Oracle 19c 报ORA-704 ORA-01555故障处理---惜分飞

异常断电导致数据库无法启动,尝试对数据文件进行recover操作,报ORA-00283 ORA-00742 ORA-00312错误,由于redo写丢失无法正常应用 D:\check_db>sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 星期日 7月 30 07:49:19 2023 Version 19.3.0.0.0 Copyrig…

利用读时建模等数据分析能力,实现网络安全态势感知的落地

摘要&#xff1a;本文提出一种基于鸿鹄数据平台的网络安全态势感知系统&#xff0c;系统借助鸿鹄数据平台读时建模、时序处理、数据搜索等高效灵活的超大数据存储和分析处理能力&#xff0c;支持海量大数据存储、分类、统计到数据分析、关联、预测、判断的网络安全态势感知能力…

FastAPI 5 - 依赖、安全

文章目录 一、Dependencies 依赖注入1、函数作为依赖2、类作为依赖3、多次依赖4、同时依赖多个二、安全、授权2、获取当前用户3、密码验证、令牌使用4、JWT 令牌、哈希加密学习自:FastAPI教程第二季(三):依赖+安全(最快python异步并发web框架之一) https://www.bilibili.…

PID模块化__以stm32直流电机速度为例

文章目录 前言一、相关PID源码.c.h 二、如何使用1.创建变量2.初始化3.运算4.修改pid参数 总结 前言 本篇使用到的基于这个STM32CubeMX 直流电机PID速度控制、HAL库、cubemx、PID、速度控制、增量式 由于上次使用的pid没有模块化&#xff0c;当多出使用pid的时候就会很麻烦 所以…

CentOS7系统Nvidia Docker容器基于TensorFlow2.12测试GPU

CentOS7系统Nvidia Docker容器基于TensorFlow1.15测试GPU 参考我的另一篇博客 1. 安装NVIDIA-Docker的Tensorflow2.12.0版本 1. 版本依赖对应关系&#xff1a;从源代码构建 | TensorFlow GPU 版本Python 版本编译器构建工具cuDNNCUDAtensorflow-2.6.03.6-3.9GCC 7.3.1Ba…

beego通过gorm访问mysql数据库

一、下载golang 二、解压下载包到C盘 三、配置golang系统环境变量 四、进入新建的工作目录C:\project下载并安装beego 五、将新生成的bee.exe所在的路径c:\project\bin加入到系统变量path里面 六、下载并安装mysql 例如在上图中&#xff0c; 选“No thanks,just start my down…

如何在3ds max中创建可用于真人场景的巨型机器人:第 3 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建腿部装备 步骤 1 打开 3ds Max。 打开在本教程最后一部分中保存的文件。 打开 3ds Max 步骤 2 转到创建> 系统并单击骨骼。 创建>系统 步骤 3 为的 侧视口中的腿&#xff0c;如下图所示…

Java 程序员:本是为了跳槽刷完 1000 道真题,想不到被老板知道直接给我升职

同事&#xff1a;前阵子听说你要跳槽&#xff0c;现在准备得怎么样啊&#xff1f; 程序员 T&#xff1a;不跳了 同事&#xff1a;啊&#xff1f;为什么&#xff1f; 程序员 T&#xff1a;涨薪了呗&#xff1f; 同事&#xff1a;真的吗&#xff1f;涨了多少&#xff1f;你自…

R语言无法调用stats.dll的问题解决方案[补充]

写在前面 在去年10月份&#xff0c;出过一起关于R语言无法调用stats.dll的问题解决方案,今天&#xff08;你看到后是昨天&#xff09;不知道为什么&#xff0c;安装包&#xff0c;一直安装不了&#xff0c;真的是炸裂了。后面再次把R与Rstuido升级。说实话&#xff0c;我是真不…

flutter 图片相关

官方链接&#xff1a;https://api.flutter.dev/flutter/widgets/Image-class.html 图片基本使用 显示本地图片时,要在pubspec.yaml文件里面添加如:(注意空格) assets: - assets/images/logo.png Fit属性&#xff1a; BoxFit.cover最常用 显示可能拉伸&#xff0c;可能裁…