从零开始学习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 列表的常用操作

  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" 

原文地址:https://www.cnblogs.com/nickwu/p/12567803.html

时间: 2024-10-30 06:52:49

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

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

本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141207 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/12567789.html 4. [三维+]:数组(Array) R语言中数组可以看做是矩阵的扩展,它将矩阵扩展到2维以上.如果给定的数组是1维的则相当于向量,2维的相当于矩阵.R语言中的数组元素的类型也是单一的,可以是数值型,逻辑型,字符型或复数型等. R语言中数组的使用 4.1 数组的创建 语法:array

从零开始学习R语言(七)——函数

本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/61142959 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/12568362.html 函数是各种编程语言都很常见的功能,R语言有很多的内置函数,但通过自定义函数,我们可以创建能实现自己想要功能的函数. R语言自定义函数的结构 func_name <- function (args) { func_body return (value) } 其中,func_name是自

从零开始学习R语言(六)——数据结构之“数据框(Data Frames)”

本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141998 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/12568348.html 6. 数据框(Data Frames) Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的.Data Frame每一列有列名,每一行也可以指定行名.如果不指定行名,那么就是从1开始自

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

在上一篇中我们一起学习了R语言的环境搭建,这次我们开始学习R语言的数据结构第一部分:向量.数组和矩阵. 一.向量 向量是一维数组,其内容可以是数值.字符或布尔值,但所有数据的类型必须一致.创建向量使用的关键字是c,访问向量中的元素使用[],具体如下: 创建数值向量a<-c(1,2,3,4,5,6) 创建字符向量b<-c("a","b","c") 创建布尔向量c<-c(TRUE,FALSE) 访问向量: a[3] 得到的值是3,注

手把手教你学习R语言

本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者不知道从哪开始,如何进行,选择什么学习资源.虽然网络上有许多不错的免费学习资源,然而它们多过了头,反而会让人挑花了眼. 为了构建R语言学习方法,我们在Vidhya和DataCamp中选一组综合资源,帮您从头学习R语言.这套学习方法对于数据科学或R语言的初学者会很有用;如果读者是R语言的老用户,则会由本文了解这门语言的部分最新成果. R语言学习方法会帮助您快速.高效学习R语言. 前言 在开始学习之前

如何从零开始学习Java语言

1.如何从零开始学习Java语言 许多朋友在学习新的语言上有些困惑,如何学好Java语言. 如何学好Java语言,分二种技术人员 1)第一种:有编程语言的技术人员 IT行业的朋友,应为本事就有编程语言的技术,学习Java语言不是困难的事情.所谓的懂一门语言就会其他语言.为什么这么说,应他们有一些编程的基本知识,他们知道如何去学习技术.(但这里有一点却记:不要认为自己懂了一门编程语言就学习其他语言很简单.就跳过一些基本知识不学习.)如果你是这样的话,请立即改正这错误观点,因为这样你即时学会了这门语

R语言中数据结构

R语言还是有点古老感觉,数据结构没有Python中那么好用,下面简单总结一下R语言中常用的几个数据结构. 向量: R中的向量可以理解为一维的数组,每个元素的mode必须相同,可以用c(x:y)进行创建,如x <- c(1:9). 矩阵: R中的矩阵可以理解为二维数组,每一个元素必须要有相同的mode,使用matrix进行创建,matrix的形式为: matrix(vector, nrow=number_of_rows, ncol=number_of_columns, byrow=logical_

从零开始学习C语言3

参考书籍:从零开始学C语言 摘要 1.算术的表达式,用算术运算符将运算对象即运算量或操作数连接起来,构成符合C语言语法规则的式子,成为运算表达式.   算术表达式中,运算对象包括常量,变量和函数.算术表达式求值规律和数学中的规律相似. 2.算术表达式的求知顺序按算术的优先级别高低次序进行,先执行级别高的,再执行级别低的. 3.赋值运算符的表达式,例如:赋值a=b,加赋值a+=b等价于a=a+b,乘赋值a*=b等价于a=a*b....等等. 4.赋值表达式,有赋值运算符将一个变量个一个表达式连接起

从零开始学习C语言4

参考书籍:从零开始学C语言 摘要 1.条件运算符及条件表达式.   条件预算符是由“?”和“:”组成,条件运算符有三个运算对象.第一个运算对象可以说任何类型的表达式,如算术表达   式,   关系表达式,赋值表达式和逻辑表达式等,后面两个表达式是类型相同的任何表达式.例如条件运算符:a?b:c  表示的   是:如果a的逻辑值为真,计算b,生成该操作的结果:如果a的逻辑值为假,计算c,生成该操作的结果.   以上例子可以得出,条件运算符可以用于程序的判断和选择.可以用条件运算符非常简单的计算出两