从零开始学习R语言(五)——数据结构之“列表(List)”
本文首发于知乎专栏: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 列表的常用操作
names( )函数可以显示并修改list中所有成分的名字length( )函数可以显示list中成分的个数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)”的更多相关文章
- 从零开始学习R语言(一)——数据结构之“向量”(Vector)
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/59688569 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125370 ...
- 从零开始学习R语言(四)——数据结构之“数组(Array)”
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141207 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125677 ...
- 从零开始学习R语言(三)——数据结构之“矩阵(Matrix)”
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60140022 也同步更新于我的个人博客:https://www.nickwu.cn/blog/id=129 3. [二 ...
- 从零开始学习R语言(二)——数据结构之“因素(Factor)”
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60101041 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125370 ...
- 从零开始学习R语言(八)——R语言绘图
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/74051739 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125683 ...
- 从零开始系列-R语言基础学习笔记之二 数据结构(二)
在上一篇中我们一起学习了R语言的数据结构第一部分:向量.数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框.因子和列表. 一.数据框 类似于二维数组,但不同的列可以有不同的数据类型(每一列内 ...
- 从零开始系列--R语言基础学习笔记之一 环境搭建
R是免费开源的软件,具有强大的数据处理和绘图等功能.下面是R开发环境的搭建过程. 一.点击网址 https://www.r-project.org/ ,进入"The R Project fo ...
- 手把手教你学习R语言
本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者不知道从哪开始,如何进行,选择什么学习资源.虽然网络上有许多不错的免费学习资源,然而它们多过了头,反 ...
- R语言的数据结构
首先声明,R语言对大小写敏感. 一.向量 vector类型可以存储数字.字符和逻辑类型.构建函数为C(): > a <- c(1,2,3,4) > b <- c('dau',' ...
随机推荐
- 解决jar包冲突
参考文档: http://www.jianshu.com/p/100439269148 idea plugin: https://www.cnblogs.com/huaxingtianxia/p/57 ...
- unittest(11)- get_data自定义取某几条测试数据
在get_data中定义取全部用例和取部分用例两种模式 # 1. http_request.py import requests class HttpRequest: def http_request ...
- 2016年3月13日 FXStreet首席分析师:欧元/美元下周走势展望
FX168讯 欧元/美元在经历周初沉闷的走势之后,最终在欧洲央行出台一系列措施促进通货膨胀和经济增长之后怒涨至近一个月最高位.欧洲央行决议公布之前,投资者预期存款利率将下调10至15个基点,并可能进一 ...
- Spring 中的 JDBCTemplate
新建一个java工程 写好spring配置文件,直接上代码 <?xml version="1.0" encoding="UTF-8"?> <b ...
- 我是一个Bug, 终极大Bug
我是一个Bug ,在这个系统中潜伏很久了,历经多轮测试的严酷考验而屹立不倒,如果Bug界按难度分类的话,我绝对属于地狱模式. 现在,我就等待一个倒霉蛋来触发, 可是他老是不来. 其实不能叫倒霉蛋 , ...
- webpack在用dev-server的时候怎么配置多入口文件
类似下面这样就可以了,entry设置为对象 每个入口设置为属性,属性的值是一个数组,就可以像单入口一样往这个数组添加entry: { Profile: [ 'webpack-dev-server/cl ...
- Bug,项目过程中的重要数据
作者|孙敏 为什么要做Bug分析? Bug是项目过程中的一个有价值的虫子,它不只是给开发的,而是开给整个项目组的. 通过Bug我们能获得什么? 积累测试方法,增强QA的测试能力,提升产品质量 发现项目 ...
- 自动化移动安全渗透测试框架:Mobile Security Framework
自动化移动安全渗透测试框架:Mobile Security Framework 译/Sphinx 测试开发社区 7月3日 Mobile Security Framework (移动安全框架) 是一 ...
- Dream权限追踪系统<=2.0.1 重安装漏洞
在./install/install.php中 if(file_exists('lock.txt')){ echo '系统已安装,请不要重复安装!如需安装,请删除install文件夹下的lock.tx ...
- 一个简单的爬取b站up下所有视频的所有评论信息的爬虫
心血来潮搞了一个简单的爬虫,主要是想知道某个人的b站账号,但是你知道,b站在搜索一个用户时,如果这个用户没有投过稿,是搜不到的,,,这时就只能想方法搞到对方的mid,,就是 space.bilibil ...