3.4 索引
Next: Scope of variables,Previous: Elementary arithmetic operations,Up: Evaluation of expressions
3.4 索引
R 有多种构造允许通过索引操作来访问单个元素或者子集。在基本的向量类型中,可以通过x[i]访问第i个元素,但在列表,矩阵和多维数组中也有索引。除了用单个的整数进行索引,还有多种形式的索引。索引既可用于提取对象的一部分,也可用于替换对象的一部分(或者增加一部分)。
R 有三种基本的索引操作。语法如下面的例子所示
x[i]
x[i, j]
x[[i]]
x[[i, j]]
x$a
x$"a"
对于向量和矩阵,[[形式很少使用,尽管它和[在语义上稍稍有点不同(例如它去掉了所有names 或 dimnames属性,并且在字符索引的时候采用局部匹配)。当用单个索引处理多维结构时, x[[i]] 或者x[i] 将会返回x的第 i 个元素。
对于一个列表,通常使用 [[ 去选择任意单个的元素,而 [ 返回所选元素的列表。
[[ 形式允许使用整数或字符索引选出单个的元素,而 [允许通过向量进行索引。注意,对于一个列表,索引可以使用向量然后向量的任何一个元素将依次用于列表,所选的分量,所选分量的分量,等等。1返回结果仍然是单个元素。
$形式用于列表和成对列表的递归对象。它仅仅允许字面上的字符串和符号作为索引。也就是说,这种索引不可计算的:当你需要通过对一个表达式求值确定一个索引,请使用 x[[expr]]。当 $用于非递归对象时,返回结果是NULL。
Footnotes
[1] 译者注:我测试了一下,和这里描述的不一样。原文为:“Note though that for a list, the index can be a vector andeach element of the vector is applied in turn to the list, theselected component, the selected component of that component, and so on.”
Hits:Loading...
