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

列表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对象(向量、数据框、矩阵、列表)非常有帮助!)

相关文章:

列表list

列表 列表是将数据组织在一个一维集合中&#xff0c;从这个组织方式来看&#xff0c;它与c()函数是相似的。但是&#xff0c;列表并不是将具体的值组织起来&#xff0c;而是组织R对象&#xff0c;如列表、数据框、矩阵、函数、向量等等。 列表非常好用&#xff0c;因为列表可…...

gcc编译出现bar causes a section type conflict with foo问题解决

这里bar是变量名&#xff0c;foo是函数名。 如下是charGPT给出的答复&#xff0c;结论是&#xff1a;bar和foo放在同一个section内&#xff0c;但是它们的类型不同&#xff0c;函数应该放置在一个可执行&#xff08;executable&#xff09;类型的section&#xff0c;而变量应该…...

12. Mybatis 多表查询 动态 SQL

目录 1. 数据库字段和 Java 对象不一致 2. 多表查询 3. 动态 SQL 使用 4. if 标签 5. trim 标签 6. where 标签 7. set 标签 8. foreach 标签 9. 通过注解实现 9.1 查找所有数据 9.2 通过 id 查找 1. 数据库字段和 Java 对象不一致 我们先来看一下数据库中的数…...

操作系统专栏1-内存管理from 小林coding

操作系统专栏1-内存管理 虚拟地址内存管理方案分段分页页表单级页表多级页表TLB 段页式内存管理Linux内存管理 malloc工作方式操作系统内存回收回收的内存种类 预读失败和缓存污染问题预读机制预读机制失效解决方案缓存污染 内核对虚拟内存的表示内核对内核空间的表示直接映射区…...

SpringCloud远程服务调用

下面介绍在SpringCloud中如何使用openfeign实现远程服务调用 1.在字典服务中有这么2个接口 Api(tags "数据字典接口") RestController RequestMapping("/admin/cmn/dict/") CrossOrigin public class DictController {Autowiredprivate DictService dic…...

Arcgis通过模型构建器计算几何坐标

模型 模型中&#xff0c;先添加字段&#xff0c;再计算字段 计算字段 模型的计算字段中&#xff0c;表达式是类似这样写的&#xff0c;其中Xmin表示X坐标&#xff0c;Ymin表示Y坐标 !Shape.extent.Xmin!...

java设计模式-工厂模式(下)

接java设计模式-工厂模式&#xff08;上&#xff09; 抽象工厂模式 针对耳机的生产需求&#xff0c;我们可以知道&#xff0c;刚才的工厂已经不满足了&#xff0c;因为只是生产一类产品-手机&#xff0c;但是现在我们需要的工厂类是要生产一个产品族&#xff08;手机和耳机&a…...

深蓝学院C++基础与深度解析笔记 第13章 模板

1. 函数模板 ● 使用 template 关键字引入模板&#xff1a; template<typename T> //声明&#xff1a;T模板形参void fun(T); // T 函数形参template<typename T> //定义void fun(T) {...}– 函数模板不是函数 –…...

装饰器模式——扩展系统功能

1、简介 1.1、概述 对新房进行装修并没有改变房屋用于居住的本质&#xff0c;但它可以让房子变得更漂亮、更温馨、更实用、更能满足居家的需求。在软件设计中&#xff0c;也有一种类似新房装修的技术可以对已有对象&#xff08;新房&#xff09;的功能进行扩展&#xff08;装…...

无涯教程-jQuery - jQuery.get( url, data, callback, type )方法函数

jQuery.get(url&#xff0c;[data]&#xff0c;[callback]&#xff0c;[type])方法使用GET HTTP请求从服务器加载数据。 该方法返回XMLHttpRequest对象。 jQuery.get( url, [data], [callback], [type] ) - 语法 $.get( url, [data], [callback], [type] ) 这是此方法使用的…...

【Vue3】递归组件

1. 递归组件mock数据 App.vue <template><div><Tree :data"data"></Tree></div> </template><script setup lang"ts"> import { reactive } from vue; import Tree from ./components/Tree.vue; interface Tr…...

【Python】数据分析+数据挖掘——探索Pandas中的索引与数据组织

前言 在数据科学和数据分析领域&#xff0c;Pandas是一个备受喜爱的Python库。它提供了丰富的数据结构和灵活的工具&#xff0c;帮助我们高效地处理和分析数据。其中&#xff0c;索引在Pandas中扮演着关键角色&#xff0c;它是一种强大的数据组织和访问机制&#xff0c;使我们…...

matlab进阶:求解在约束条件下的多元目标函数最值(fmincon函数详解)

&#x1f305;*&#x1f539;** φ(゜▽゜*)♪ **&#x1f539;*&#x1f305; 欢迎来到馒头侠的博客&#xff0c;该类目主要讲数学建模的知识&#xff0c;大家一起学习&#xff0c;联系最后的横幅&#xff01; 喜欢的朋友可以关注下&#xff0c;私信下次更新不迷路&#xff0…...

Kotlin知识点

Kotlin 是 Google 推荐的用于创建新 Android 应用的语言。使用 Kotlin&#xff0c;可以花更短的时间编写出更好的 Android 应用。 基础 Kotlin 程序必须具有主函数&#xff0c;这是 Kotlin 编译器在代码中开始编译的特定位置。主函数是程序的入口点&#xff0c;或者说是起点。…...

亚马逊云科技联合霞光社发布《2013~2023中国企业全球化发展报告》

中国企业正处于全球聚光灯下。当企业全球化成为时代发展下的必然趋势&#xff0c;出海也从“可选项”变为“必选项”。中国急速扩大的经济规模&#xff0c;不断升级的研发和制造能力&#xff0c;都在推动中国企业不断拓宽在全球各行业的疆域。 过去十年&#xff0c;是中国企业…...

【解析excel】利用easyexcel解析excel

【解析excel】利用easyexcel解析excel POM监听类工具类测试类部分测试结果备注其他 EasyExcel Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存&#xff0c;poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题&…...

JQuery操作单选按钮Radio和复选框checkbox

获取选中值&#xff1a; $(input:radio:checked).val()&#xff1b;$("input[typeradio]:checked").val();$("input[namerd]:checked").val();$("input[idrand_question]:checked").val();设置第一个Radio为选中值&#xff1a; $(input:radio:…...

7.28 作业 QT

手动完成服务器的实现&#xff0c;并具体程序要注释清楚: widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器类 #include <QTcpSocket> //客户端类 #include <QMessageBox> //对话框类 #include …...

HTML <pre> 标签

定义和用法 pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。 <pre> 标签的一个常见应用就是用来表示计算机的源代码。 可以导致段落断开的标签(例如标题、"><p> 和 标签"><a…...

查询结果元数据-MetaData对象、数据库工具类的封装、通过反射实现数据查询的封装

六、查询结果元数据-MetaData对象 七、数据库工具类的封装 1、PropertieUtil类 2、DbUtil类 3、DBHepler类 查询&#xff1a; 4、TestDb测试类&#xff1a; 更新&#xff1a; 1&#xff09;插入&#xff1a; 2&#xff09;修改&#xff1a; 3&#xff09;删除&#xff1a; 查…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...