R语言中的列表list
基础
在R语言中的最常用的向量有两种:
第一种,原子向量
像字符型向量,数值型向量,逻辑型向量这些,它们共有的一个特点是,向量里面的值是同质的。当你用数值型向量时,里面所有值都是数值型的。
就算你写的代码是不同质的,R也有一套说法给你自动转化成同质的。
比如说:
> x <- c(1,"2","3","4",5)
> typeof(x)
[1] "character"
在这个向量中,所有的值被转换成字符向量。
再比如:
> x <- c(TRUE,1,0,FALSE,5)
> x
[1] 1 1 0 0 5
在这样一个向量中,TRUE都被转换成了数值型的1,FALSE都被转化成了0。
第二种:列表
和原子型向量不一样的是,列表的元素可以是各种类型的数据,甚至可以再试一个列表。
这使得列表容纳的数据类型具有很强的丰富性。
1. 创建列表
创建列表可以用list函数。
如下:
> x <- list(1,2,3)
> x
[[1]]
[1] 1[[2]]
[1] 2[[3]]
[1] 3
我们重点看一下输出内容。这个内容变成了二维的。
[[1]]代表列表的第一个元素,[1]代表第一个元素里面的第一个元素。
2. 列表容纳不同类型的元素
在前面说了,list可以放下不同类型的元素。
我们用同样的数据创建一个列表:
x <- list(TRUE,"2","one","4",5)
> x
[[1]]
[1] TRUE[[2]]
[1] "2"[[3]]
[1] "one"[[4]]
[1] "4"[[5]]
[1] 5
发现TRUE和FALSE并没有被自动转化,而是保留了下来,这个list里面就有了两种类型的元素。
3.列表容纳其它原子向量或列表
直接看例子:
> x <- list(1,"one",c(1,2,3),list("one","two","three"))
> x
[[1]]
[1] 1[[2]]
[1] "one"[[3]]
[1] 1 2 3[[4]]
[[4]][[1]]
[1] "one"[[4]][[2]]
[1] "two"[[4]][[3]]
[1] "three"
我们可以看看这个列表的结构。
前两个值我们比较熟悉了。
从第三个开始:
[[3]]
[1] 1 2 3`
[[3]]代表列表的第三个值。
[1]代表列表第三个值里面的第一个值。从这里看出,向量被当成一个值对待的。
从第四个值,我们又看到不一样的地方了。
[[4]]
[[4]][[1]]
[1] "one"[[4]][[2]]
[1] "two"[[4]][[3]]
[1] "three"
[[4]]代表列表的第四个值。
[[4]][[1]]代表列表第四个值里面的第一个列表值。
列表取子集
列表取子集有三种方式,我们用下面这个列表来操作:
> x <- list(a=1:3,b="a string", c=pi,d =list(-1,-5))
> pi
[1] 3.141593
看一下这个列表的构成。
list的第一个值$a是一个向量,$b是一个字符串,$c是一个常量,$d是一个列表。
我们可以有以下方式取子集:
第一种:用整数数组
> x[c(1,2)]
$a
[1] 1 2 3$b
[1] "a string"
第二种:用$取。
如果list里面的值是有名字的,可以用$这个符号加名字来取值。
> x$d
[[1]]
[1] -1[[2]]
[1] -5
第三种:用[[]]来取内容值
我们从输出值能看出来,列表会用[[n]]这样一个符号代表列表的第n个值。
我们来看看下面两个的区别:
> x[[3]]
[1] 3.141593
> x[3]
$c
[1] 3.141593
从这里看出[[]]会深入到更深一层的数据,而[]只是从list中取一个值。
我们尤其可以通过下面的例子对比一下[]和[[]]。
> x[[4]]
[[1]]
[1] -1[[2]]
[1] -5> x[[4]][1]
[[1]]
[1] -1> x[[4]][[1]]
[1] -1
相关文章:
R语言中的列表list
基础 在R语言中的最常用的向量有两种: 第一种,原子向量 像字符型向量,数值型向量,逻辑型向量这些,它们共有的一个特点是,向量里面的值是同质的。当你用数值型向量时,里面所有值都是数值型的。…...
10、有条件提前退出关键字Return From Keyword If【robot framework】
在 Robot Framework 中,Return From Keyword If 是一个有用的关键字,它允许你在特定条件下从关键字中返回。这在需要在满足某个条件时提前退出关键字的情况下特别有用。 以下是 Return From Keyword If 的语法和使用示例: 语法 Return From…...

JAVA开发的一套(智造制造领航者云MES系统成品源码)saas云MES制造执行系统源码,全套源码,支持二次开发
JAVA开发的一套(智造制造领航者云MES系统成品源码)saas云MES制造执行系统源码,全套源码,支持二次开发 1990年11月,美国先进制造研究中心AMR(Advanced Manufacturing Research)就提出了MES&#…...
探究JSON和XML:两种常见的数据交换格式之异同
在软件开发和数据交换领域,JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式。它们都具有将数据结构化并在不同系统之间进行传输和解析的能力,但在实际应用…...
SQL查询的优化方案
SQL查询优化是一个重要的数据库管理任务,它可以帮助提升查询性能,减少响应时间和系统资源消耗。以下是一些关键的优化策略及其示例: 1. 使用索引 (Indexing) 优化说明: 索引能够显著加快数据检索速度,特别是对于大表上的查询。为…...

【C语言题解】1、写一个宏来计算结构体中某成员相对于首地址的偏移量;2、写一个宏来交换一个整数二进制的奇偶位
🥰欢迎关注 轻松拿捏C语言系列,来和 小哇 一起进步!✊ 🌈感谢大家的阅读、点赞、收藏和关注 💕希望大家喜欢我本次的讲解💕 目录👑 1、写一个宏,计算结构体中某变量相对于首地址的偏…...

LabVIEW阀性能试验台测控系统
本项目开发的阀性能试验台测控系统是为满足国家和企业相关标准而设计的,主要用于汽车气压制动系统控制装置和调节装置等产品的综合性能测试。系统采用工控机控制,配置电器控制柜,实现运动控制、开关量控制及传感器信号采集,具备数…...
Flutter 中的 LayoutBuilder 小部件:全面指南
Flutter 中的 LayoutBuilder 小部件:全面指南 Flutter 是一个功能丰富的 UI 框架,它允许开发者使用 Dart 语言来构建高性能、美观的跨平台应用。在 Flutter 的布局系统中,LayoutBuilder 是一个强大的组件,它可以根据父容器的约束…...

webman中创建udp服务
webman是workerman的web开发框架 可以很容易的开启udp服务 tcp建议使用gatewayworker webman GatewayWorker插件 创建udp服务: config/process.php中加入: return [// File update detection and automatic reloadmonitor > [ ...........], udp > [handler > p…...

Vue 学习笔记 总结
Vue.js 教程 | 菜鸟教程 (runoob.com) 放一下课上的内容 Vue练习 1、练习要求和实验2的用户注册一样,当用户输入后,能在下方显示用户输入的各项内容(不需要实现【重置】按钮) 2、实验报告中的实验小结部分来谈谈用JS、jQuery和…...
云计算导论(3)---分布式文件系统
文章目录 1. 概述2. 基本架构3. GFS和HDFS4. 云存储 1. 概述 1. 文件系统是操作系统用来组织磁盘文件的方法和数据结构。 传统的文件系统指各种UNIX平台的文件系统,包括UFS等,它们管理本地的磁盘存储资源,提供文件到存储位置的映射…...

后端进阶-分库分表
文章目录 为什么需要分库为什么需要分表 什么时候需要分库分表只需要分库只需要分表 分库分表解决方案垂直分库水平分库垂直分表水平分表 分库分表常用算法范围算法hash分片查表分片 分库分表模式客户端模式代理模式 今天跟着训练营学习了分库分表,整理了学习笔记。…...

Apple开发者应用商店(AppStore)描述文件及ADHOC描述文件生成
创建AD HOC描述文件 1.选中Profiles,然后点击加号创建 2.创建已注册设备可安装描述文件 3.选择要注册的id 4.选择证书 5.选择设备 6.输入文件名,点击生成 7.生成成功,点击下载...
【Git】修改设置 git 的 username、email
设置全局的本地用户名称和用户邮箱 参考:使用git config --global设置用户名和邮件 git config --global user.name "xxx" git config --global user.email "xxx.com"git config --list git config命令的–global参数,用了这个参数…...

python脚本打包为exe并在服务器上设置定时执行
python脚本打包为exe并在服务器上设置定时执行 1. Python脚本打包2. 将打包好的Python脚本放入服务器3. 在服务器上设置其定时执行 1. Python脚本打包 首先,下载pyinstaller 键盘winR打开终端,输入命令:pip install pyinstaller,…...

STM32-呼吸灯仿真
目录 前言: 一.呼吸灯 二.跑马灯 三. 总结 前言: 本篇的主要内容是关于STM32-呼吸灯的仿真,包括呼吸灯,跑马灯的实现与完整代码,欢迎大家的点赞,评论和关注. 接上http://t.csdnimg.cn/mvWR4 既然已经点亮了一盏灯,接下来就可以做更多实验了, 一.呼吸灯 在上一个的基础上…...

【AI基础】第三步:纯天然保姆喂饭级-安装并运行chatglm2-6b
chatglm2构建时使用了RUST,所以在安装chatglm2之前,先安装RUST。 此系列文章列表: 【AI基础】第一步:安装python开发环境-windows篇_下载安装ai环境python-CSDN博客 【AI基础】第一步:安装python开发环境-conda篇_mini…...

Spring Security系列之Handler
概述 与Spring、Spring MVC、Spring Boot一样,Spring Security里也有很多Handler接口、可以分为两大类,一类是普通的XxxHandler(见名知意),另一类是对应的ServerXxxHandler(RequestRejectedHandler除外&am…...

Thinkphp使用Elasticsearch查询
在Thinkphp中调用ES,如果自己手写json格式的query肯定是很麻烦的。我这里使用的是ONGR ElasticsearchDSL 构建 ES 查询。ongr ElasticsearchDSL 的开源项目地址:GitHub - ongr-io/ElasticsearchDSL: Query DSL library for Elasticsearch。ONGR Elastics…...
开源日志分析平台ELK实战应用
1.开源日志分析平台ELK概述及搭建过程 ELK 是一个开源的日志管理平台,由 Elasticsearch、Logstash 和 Kibana 三个组件组成。这个平台广泛用于实时日志处理和分析。下面简单介绍一下每个组件的作用以及如何搭建一个基本的 ELK 栈。 ELK 组件 Elasticsearch:是一个搜索和分析…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...