本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141740

也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/12567803.html


5. 列表(list)

R语言中的列表和Python等语言中的list有所不同。R语言中的列表是对象的集合, 列表中的对象又称为它的分量(components)。 分量可以包含向量、矩阵、数组,数据框,甚至是另外一个列表,且在列表中要求每一个分量都要有一个名称。

my_list <- list(stud_id=c(34453,123),
stud_name="John",
stud_marks=c(14.3,12,15,19))
my_list
#输出:
$stud_id
[1] 34453 123
$stud_name
[1] "John"
$stud_marks
[1] 14.3 12.0 15.0 19.0

5.1 列表的索引

使用列表的索引形式可以对列表中的元素进行访问,编辑或删除。

访问列表中的元素可以使用双重方括号来指明成分或使用成分的名称及位置来访问。

5.1.1 访问列表中某一个成分

list1[1] #访问列表中的第一个成分,使用这种方法,返回的结果仍为一个列表( 还可以使用list1['stu_id']的方式访问第一个成分)

# mode(my_list[1])
# 返回 "list"

5.1.2 访问列表中某一个成分的全部元素值

list1[[1]] #访问列表中的第一个成分的全部元素值,这次返回的是向量,不再是列表。( 还可以通过list1$stu_id访问名称为“stu_id”成分的全部元素。 )

# mode(list[[1]])
# 返回"numeric"

5.1.3 访问列表中某一个成分的某一个元素值

list[1] #访问列表第1个成分的第1个元素值

5.2 列表的编辑

5.2.1 添加或删除列表中的某一成分

原理与对列表中某一成分的索引相同

my_list$new_comp <- c(1,2,3,4) #若new_comp成分不存在,则直接添加该成分并赋值
my_list['new_comp'] <-list(c(1,2,3)) #若new_comp成分不存在,则直接添加该成分并赋值
my_list$stu_id = NULL #删除名称为stu_id的成分
my_list['stu_name'] = NULL #删除名称为stu_name的成分

5.2.2 修改列表某一成分的元素值

方法同5.2.1,若该成分已存在,则修改该成分的元素值,如不存在,则创建新的成分

5.2.3 修改列表某一成分的某一元素值

原理与某一具体元素值的索引相同

my_list[[1]][2] <- c(1,2,3)  #修改列表中第一个成分的第2个元素值

5.3 列表的常用操作

  1. names( )函数可以显示并修改list中所有成分的名字

  2. length( )函数可以显示list中成分的个数

  3. unlist( )函数可以将list解包

#Example:
names(list1) <- c('a','b','c')

unlist(my.lst)
#输出:
stud_id1 stud_id2 stud_name stud_marks1 stud_marks2 stud_marks3
"34453" "123" "John" "14.3" "12" "15"
stud_marks4
"19"

从零开始学习R语言(五)——数据结构之“列表(List)”的更多相关文章

  1. 从零开始学习R语言(一)——数据结构之“向量”(Vector)

    本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/59688569 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125370 ...

  2. 从零开始学习R语言(四)——数据结构之“数组(Array)”

    本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141207 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125677 ...

  3. 从零开始学习R语言(三)——数据结构之“矩阵(Matrix)”

    本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60140022 也同步更新于我的个人博客:https://www.nickwu.cn/blog/id=129 3. [二 ...

  4. 从零开始学习R语言(二)——数据结构之“因素(Factor)”

    本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60101041 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125370 ...

  5. 从零开始学习R语言(八)——R语言绘图

    本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/74051739 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125683 ...

  6. 从零开始系列-R语言基础学习笔记之二 数据结构(二)

    在上一篇中我们一起学习了R语言的数据结构第一部分:向量.数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框.因子和列表. 一.数据框 类似于二维数组,但不同的列可以有不同的数据类型(每一列内 ...

  7. 从零开始系列--R语言基础学习笔记之一 环境搭建

    R是免费开源的软件,具有强大的数据处理和绘图等功能.下面是R开发环境的搭建过程. 一.点击网址 https://www.r-project.org/ ,进入"The R Project fo ...

  8. 手把手教你学习R语言

    本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者不知道从哪开始,如何进行,选择什么学习资源.虽然网络上有许多不错的免费学习资源,然而它们多过了头,反 ...

  9. R语言的数据结构

    首先声明,R语言对大小写敏感. 一.向量 vector类型可以存储数字.字符和逻辑类型.构建函数为C(): > a <- c(1,2,3,4) > b <- c('dau',' ...

随机推荐

  1. 如何在sublime中调试html文件

    一.安装View In Browser插件 快捷键 Ctrl+Shift+P(菜单栏Tools->Command Paletter),输入 pcip选中Install Package并回车,输入 ...

  2. html解析过程

    Web页面运行在各种各样的浏览器当中,浏览器载入.渲染页面的速度直接影响着用户体验 简单地说,页面渲染就是浏览器将html代码根据CSS定义的规则显示在浏览器窗口中的这个过程.先来大致了解一下浏览器都 ...

  3. centos7上Jenkins通过rpm包方式直接安装及使用war包方式升级

    一.通过rpm包方式直接安装jenkins 1.官网下载rpm安装包(前提是安装jdk) wget https://pkg.jenkins.io/redhat-stable/jenkins-2.121 ...

  4. 测试用例设计经典面试题之电梯、杯子、笔、桌子、洗衣机、椅子、ATM等

    测试用例设计经典面试题之电梯.杯子.笔.桌子.洗衣机.椅子.ATM等 1.测试项目:电梯 需求测试:查看电梯使用说明书.安全说明书等 界面测试:查看电梯外观 功能测试:测试电梯能否实现正常的上升和下降 ...

  5. Problem 43 // Project Euler

    Sub-string divisibility The number, 1406357289, is a 0 to 9 pandigital number because it is made up ...

  6. Python 代码实现验证码识别

    Python 代码实现验证码识别 测试开发社区  1周前 源 /  j_hao104 一.探讨 识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域…… ...

  7. 查漏补缺:进程间通信(IPC):管道

    管道是UNIX系统IPC的最古老形式,所有UNIX系统都提供此种通信机制.管道有以下两种局限性: (1)历史上,管道是半双工的(即数据只能在一个方向上流动). (2)管道只能在具有公共先祖的两个进程之 ...

  8. Hexo next主题安装algolia

    一直在使用hexo写自己的博客,最近博客刚刚搬家重新搞了下博客: 1.为hexo添加站内搜索 我用的是algolia,在next主题5.x以上的版本集成了algolia站内搜索功能,我们只需要简单的配 ...

  9. Java入门教程二(语言基础)

    常量与变量 常量值又称为字面常量,它是通过数据直接表示 常量 实型常量值 Java 的实型常量值主要有如下两种形式 十进制数形式:由数字和小数点组成,且必须有小数点,如 12.34.-98.0 科学记 ...

  10. Mariadb 修改root密码及跳过授权方式启动数据库

    默认情况下,yum方式新安装的 mariadb 的密码为空,在shell终端直接输入 mysql 就能登陆数据库. 如果是刚安装第一次使用,请使用 mysql_secure_installation ...