美文网首页
2019-10-07 rep函数

2019-10-07 rep函数

作者: __一蓑烟雨__ | 来源:发表于2019-11-21 21:16 被阅读0次

官方帮助文档如下写的:

Usage

rep(x, ...)

rep.int(x, times)

rep_len(x, length.out)

Arguments

xa vector (of any mode including a list) or a factor or (forreponly) aPOSIXctorPOSIXltorDateobject; or an S4 object containing such an object.

...further arguments to be passed to or from other methods. For the internal default method these can include:

times

A integer vector giving the (non-negative) number of times to repeat each element if of lengthlength(x), or to repeat the whole vector if of length 1. Negative orNAvalues are an error.

length.out

non-negative integer. The desired length of the output vector. Other inputs will be coerced to an integer vector and the first element taken. Ignored ifNAor invalid.

each

non-negative integer. Each element ofxis repeatedeachtimes. Other inputs will be coerced to an integer vector and the first element taken. Treated as1ifNAor invalid.

timessee....

length.outnon-negative integer: the desired length of the output vector.

rep函数有4个参数:x向量或者类向量的对象,each:x元素每个重复次数,times:each后的向量的处理,如果times是单个值,则each后的值整体重复times次数,如果是x each后的向量相等长度的向量,则对each后的每个元素重复times同一位置的元素的次数,否则会报错;length.out指times处理后的向量最终输出的长度,如果长于生成的向量,则补齐。也就是说rep会先处理each参数,生成一个向量X1,然后times再对X1进行处理生成X2,length.out在对X2进行处理生成最终输出的向量X3。下面是示例:

> rep(1:4,times=c(1,2,3,4))  #与向量x等长times模式

[1] 1 2 2 3 3 3 4 4 4 4

> rep(1:4,times=c(1,2,3))  #非等长模式,出现错误

Error in rep(1:4, times = c(1, 2, 3)) : invalid 'times' argument

> rep(1:4,each=2,times=c(1,2,3,4)) #还是非等长模式,因为each后的向量有8位,而不是4位

Error in rep(1:4, each = 2, times = c(1, 2, 3, 4)) : 

invalid 'times' argument

> rep(1:4,times=c(1,2,3,4))  #等长模式,我写重了o(╯□╰)o

[1] 1 2 2 3 3 3 4 4 4 4

> rep(1:4,times=c(1,2,3,4),each=3) #重复的例子啊,莫拍我

Error in rep(1:4, times = c(1, 2, 3, 4), each = 3) : 

invalid 'times' argument

> rep(1:4,each=2,times=1:8)   #正确值,times8位长度向量

[1] 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

> rep(1:4,each=2,times=1:8,len=3)   #len的使用,循环补齐注意下

[1] 1 1 2

> rep(1:4,each=2,times=3)   #先each后times

[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

>rep函数完毕!

相关文章

网友评论

      本文标题:2019-10-07 rep函数

      本文链接:https://www.haomeiwen.com/subject/xypmpctx.html