本文首发于知乎专栏: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. mac 下openOffice服务的安装

    1.安装准备 安装 Homebrew 及 Homebrew-Cask Homebrew 是一个Mac上的包管理工具.使用Homebrew可以很轻松的安装缺少的依赖. Homebrew-Cask是建立在 ...

  2. 关于sql拼接的知识点 where1=1

    String sql="select * from tab_route where 1 = 1 "; 这样不会报错,而且可以根据情况,再去拼接sql 可以使用if(){}else{ ...

  3. 分析Java中的length和length()

    在不适用任何带有自动补全功能的IDE的情况下,我们怎么获取一个数组的长度?如何获取字符串的长度? 这里我们先举用实例去分析一下:int[] arr=new int[3]:System.out.prin ...

  4. C2C的道德边界:沦为从假运单到假病条的供假渠道

    你可能刚开始学会不去看网购平台上商品回评中的虚假好评,却又要开始应对同事在朋友圈等平台买来的虚开病假条带来的困扰.最近各大媒体包括党报热传的网购病假条事件,再度将人们的目光集中在这个C2C模式之上.从 ...

  5. ysoserial-调试分析总结篇(1)

    前言: ysoserial很强大,花时间好好研究研究其中的利用链对于了解java语言的一些特性很有帮助,也方便打好学习java安全的基础,刚学反序列化时就分析过commoncollections,但是 ...

  6. Git pull 卡在Unpacking objects

    今天在拉取远程仓库的时候在Unpacking objects阶段 进度条卡住,不知道什么原因. 翻取相关资料搜索后得知:在拉取大型二进制对象(如Adobe Illustrator文件等)可能会使整个拉 ...

  7. 聊聊RabbitMQ那一些事儿之一基础应用

    聊聊RabbitMQ那一些事儿之一基础应用 Hi,各位热爱技术的小伙伴您们好,今年的疫情害人啊,真心祝愿您和您的家人大家都平平安安,健健康康.年前到现在一直没有总结点东西,写点东西,不然久了自己感觉自 ...

  8. CentOS 7 国内源配置

    CentOS 7 国内源配置 1. 备份自带源 # 首先要确认你有 wget 命令, 并且连着网 # cd /etc/yum.repos.d/ # mkdir repo # mv *.repo rep ...

  9. LeetCode--链表1-单链表

    LeetCode--链表1-单链表 单链表模板 初始化 头部插入 尾部插入 删除节点 Index插入 Index返回对应的节点指针和val值 class MyLinkedList { private: ...

  10. python从一个目录中复制全部文件图片至另一个目录中,及删除指定目录中的图片

    import shutil import os #目录自己改一下即可,复制 path = "./static/imgs/" new_path = "./static/up ...