列表元素可以给定它们的名字并且可以使用这些名称来访问。
列表的元素可以通过在列表中的元素的索引来访问。如遇命名列表也可以使用名称来访问。
继续使用在上面例子的列表
我们可以添加,删除和更新列表中的元素,如下图所示。我们可以增加或删除而且只能添加到列表的末尾的元素。但是可以更新任何元素。
可以把所有的列表传到一个 list()函数合并多个列表成一个列表。
列表可以被转换为一个向量,以便能用于进一步操纵向量的元素。所有关于向量的算术运算可以在列表被转换为矢量之后被应用。要做到这一点转换,使用unlist() 函数。它以列表作为输入,并产生一个向量。
前一段工作太忙了,终于又有时间来继续学习了
列表就是一些对象(或成分,component)的有序集合。列表允许整合若干(可能无关)对象到单个对象名下。也就是说,某个列表中,可能是托干个向量、矩阵、数据框,甚至是其他列表的组合。函数list()可创建列表。
下面创建一个列表
上述例子创建了一个列表,其中有四个成分:一个字符串、一个数值型向量、一个矩阵以及一个字符型向量。可以任意组合任意多的对象,并将它们保存为一个列表。
注意:可以通过双重括号知名代表某个成分的数字或者名称来访问列表中的元素。
列表允许以一种简单的方式组织和重新调用不相干的信息。其次,许多R函数的运行结果都是以列表的形式返回的。
一些小tips:
1、对象名称中的句点 . 没有特殊意义,但$ 和其他语言中句点有相似的意义,即指定一个数据框或列表中的某些部分。例如,A$x是指数据框A中的变量x。
2、R不提供多行注释或者是块注释功能。
3、将一个值赋予某个向量、矩阵、数组或者列表中一个不存在的元素时,R将自动扩展这个数据结构以容纳新值。
4、R中没有标量。标量以单元素向量的形式出现。
5、R中的下标不从0开始,而是从1开始。
6、变量无法被生命。他们在首次被赋值时生成。
R中的列表类似于Python中的字典(dictionary)或者Peal中的哈希(hash),但又有差别。其实R有一个叫做hash的包,可以实现与Python中的dic及Perl中的hash相同的功能。
R中的list与Python中dictionary的区别:
虽然看起来有点像,但R中的list与Python中的字典还是有很大差别的,主要体现在下面几个方面:
3.1 可以没有键名
hase是键值对,必须有键名,但R的list可以没有键名,默认键名为[[n]],n为元素所在位置。
3.2 有序,且允许键值重复
这应该是R的list与Python中的dictionary最大的区别了。Peal中的hash及Python中dic的最大特点就是无序且键值唯一,这样在牺牲有序性的情况下保证了数据存取的高效性。但R中的list这两方面都不满足。其性能与hash及dic应该也有差别吧(没比较过)。