r语言列表添加元素 | 您所在的位置:网站首页 › r语言向量增加元素 › r语言列表添加元素 |
在这篇博客,你将学习如何在R中使用列表(list)。之前我们提过,列表可包含不同类型的元素,比如数字、字符串、向量、矩阵,甚至列表中也可包含另一个列表。后面你将会知道,数据框(data frame)也是一种列表,只是比较特殊而已。 接下来,你将学习如何创建、访问、修改以及删除列表中的元素。 1. 创建列表在R中,一般用list()函数来创建列表,来看个例子: > items items $`a` [1] 1 4 7 $b [1] "apple" "orange" $c [1] 3可以用str()函数来了解其内部结构: > str(items) List of 3 $ a: num [1:3] 1 4 7 $ b: chr [1:2] "apple" "orange" $ c: num 3其中a, b和c是各元素的名称(标签),通过它们可以很方便地访问元素。然而,我们也可以不要标签,这种情况下,默认用数字来做索引。 > items2 items2 [[1]] [1] 1 4 7 [[2]] [1] "apple" "orange" [[3]] [1] 3此外,我们可以通过is.list()或typeof()函数来判断某个变量是否为列表,通过length()函数来获得其长度。 > is.list(items) [1] TRUE > typeof(items) [1] "list" > length(items) ##含有3个元素 [1] 3 2. 访问列表类似于向量,列表的访问也可以利用整数、逻辑以及字符向量来索引,比如: > items items[c(1, 3)] ##通过正整数向量来索引 $`a` [1] 1 4 7 $c [1] 3 > items[-3] ##通过负整数来排除第3个元素 $`a` [1] 1 4 7 $b [1] "apple" "orange" > items[c(TRUE, FALSE, TRUE)] ##使用逻辑向量来索引 $`a` [1] 1 4 7 $c [1] 3 > items[c('b', 'c')] ##使用字符向量来索引 $`b` [1] "apple" "orange" $c [1] 3从上面知道,[ ]返回的还是一个列表,没有返回元素的内容。我们可以使用[[ ]]来获取元素的内容,比如: > items['a'] ##单个[]返回的还是列表 $`a` [1] 1 4 7 > typeof(items['a']) [1] "list" > items[['a']] ##两个[]返回具体内容 [1] 1 4 7 > typeof(items[['a']]) [1] "double"我们也可以用$操作符来获取内容,其功能基本上与[[ ]]相同,不过$还支持部分匹配标签,比如: > x x$bbb [1] "apple" "orange" > x$b ##支持部分匹配,结果与x$bb, x$bbb相同 [1] "apple" "orange" > x[['b']] ##不支持部分匹配 NULL > x$bbb[1] ##结合[ ]获取元素内部具体内容 [1] "apple" > x$bbb[2] ##结合[ ]获取元素内部具体内容 [1] "orange" 3. 修改列表类似于向量,利用赋值运算可进行列表元素的修改,比如: > x$c x[['d']] x$a str(x) List of 3 $ bbb: chr [1:2] "apple" "orange" $ c : logi FALSE $ d : chr [1:3] "one" "two" "three" > x[['bbb']] str(x) List of 2 $ c: logi FALSE $ d: chr [1:3] "one" "two" "three"有关列表的内容就讲到这。 如若有遗漏,后期将会添加至本博客。 感谢您的阅读!想了解更多有关R语言技巧,请关注我的微信公众号“R语言和Python学堂”,我将定期更新相关文章。 http://weixin.qq.com/r/HBxWTiHEuXzGrWUt90kO (二维码自动识别) |
CopyRight 2018-2019 实验室设备网 版权所有 |