2021-02-26 rep函数的详细学习

全称叫Replicate Elements of Vectors and Lists 向量和列表的复制,是基础函数(就是安装上R就直接有的函数)

rep()

通用写法:

rep(x, ...)

x表示向量或因子等。a vector (of any mode including a [list]) or a factor or (for rep only) a POSIXct or POSIXlt or Date object; or an S4 object containing such an object.
···表示进一步的或从其他方法传入的各种参数。对于内部默认方法,这些参数可以包括:

  • 1、times
    一个整数值向量,如果长度设定为length(x),给定重复每个元素的次数(非负),如果长度为1,则重复整个向量。负值或NA值会报错的。接受双向量,其他输入强制转换为整数或双向量。


    图片.png
  • 2、length.out
    非负整数。希望输出的向量长度。其他输入将强制转换为一个双向量并取第一个元素。如果是NA或无效这个参数就被忽略。


    图片.png
  • 3、each
    非负整数。x的每个元素都会被重复的次数。其他输入将强制转换为一个双向量并取第一个元素。如果是NA或无效这个参数就被认为=1。


    每个向量想重复几次就重复几次

规则:

1、通常只指定times、length.out、each其中一个附加参数,但如果使用其他两个参数中的任何一个与each参数搭配,则首先执行其each的复制,然后由times或length.out来决定,如下:

图片.png

2、如果times由单个整数组成,则结果由重复多次的整个输入X组成。如果times是一个与x相同长度的向量(经过each的复制后),则结果是x[1]重复times[1]次,x[2]重复times[2]次,以此类推。如下:
图片.png

3、length.out可以代替times,在这种情况下,x重复多次直到达到length.out规定的长度的为止。如果两者都设定了,则length.out优先,times被忽略。如下:
图片.png

因此,优先顺序:each>length.out > times

4、times如果是非整数值,那么小数点后面部分会被直接截断为零(不会四舍五入的)。如果times是一个计算量,则谨慎地添加一个小值(比如+0.5)或使用round函数(以达到四舍五入的目的)。each参数也是类似。如下:


图片.png

5、如果x的实际长度为0,length.out参数输出是正数,使用提取规则填充值,对于原子向量,使用适当类的NA(0表示原始向量),对于列表,使用NULL。

6、留一个问题没搞懂:


图片.png

你可能感兴趣的:(2021-02-26 rep函数的详细学习)