rep(x, ...)
rep.int(x, times)
rep_len(x, length.out)
rep是对向量的复制,英文是repeat,重复之意
有四个参数可用
x
表示要复制的向量
times
表示复制的次数
each
表示每个向量中元素重复次数
length.out
表示最终向量的长度
下面是一些例子
向量中的元素整体复制2倍
rep(1:4,times=2)
[1] 1 2 3 4 1 2 3 4
向量中每个元素复制2倍
rep(1:4,each=2)
[1] 1 1 2 2 3 3 4 4
类似还可以这样,是一个意思
rep(1:4,c(2,2,2,2))
[1] 1 1 2 2 3 3 4 4
可以看到,使用上述方法,我们可以自己决定向量中每个元素复制几次
比如
rep(1:4,c(2,1,3,2))
[1] 1 1 2 3 3 3 4 4
向量中元素1复制2次,2复制1次,3复制3次,4复制2次
向量元素最终长度为7
rep(1:4,length.out=7)
[1] 1 2 3 4 1 2 3
两个参数一起使用时
向量每个元素复制2次,但最终长度又要是4故如下
rep(1:4,each=2,length.out=4)
[1] 1 1 2 2
类似的
rep(1:4,each=2,length.out=10)
[1] 1 1 2 2 3 3 4 4 1 1
因为总长度没有限制,所以是向量中每个元素先复制2次,然后再整体复制3次
rep(1:4,each=2,times=3)
[1] 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4
长度限制为18时,情况差不多,先是每个元素复制2次,在整体复制
rep(1:4,each=2,times=3,length.out=18)
[1] 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 1 1
rep.int()
函数与rep()
函数的主要区别在于性能。rep.int()
函数用于处理整数向量,且对于大型向量和重复次数较大的情况下,其执行速度更快。而rep()
函数还可以处理更复杂的对象和更多的参数选项
rep_len()
函数是用于复制和调整向量长度的函数。它根据指定的长度将向量中的元素进行复制,并生成一个新的向量。与rep()
函数相比,rep_len()
函数更注重生成的向量的长度。