3.2 改变对象长度
一个“空”的对象仍然有其模式的。例如
> e <- numeric()
创建了一个数值模式的空向量结构 e
。类似的是,character()
是一个空的字符向量, 等等。一旦一个任意长度的对象被创建,新元素可以通过给定一个在先前索引范围外 的索引值1而加入。因此
> e[3] <- 17
将创建一个长度为3的向量 e
(此时,前两个元素都是 NA
)。这可以用于任何数据结构, 并且提供了一种添加和第一个位置的对象模式一致的对象的方式。
这种自动调整对象长度的方法是经常用到的,如等待输入的函数 scan()
。( scan()
函数)
相反,删减一个对象的大小只需要用赋值操作。因此,如果 alpha
是一个长度为10的对象,那么
> alpha <- alpha[2 * 1:5]
将创建一个由偶数索引位值上的元素构成的长度为5的对象(此时,老的索引将会被抛 弃)。我们可以用下面命令仅仅保留起始的三个值
> length(alpha) <- 3
一个向量也可以用同样的办法扩充(扩充部分用缺损值)。