• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文首发于知乎专栏: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" 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言之Apriori算法应用发布时间:2022-07-18
下一篇:
R语言实现时间序列分析发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap