rep()函数:重复

rep(x,…)

rep.int(x,times)

rep_len(x,length.out)

·x:一个向量(vector),一个因子(factor),一个POSIXct或POSIXlt或Date对象(object)…

·…:更多其他的选项,可能有如下的:

        ·times:必为非负整数,负数或NA是错误的。每一个向量重复的次数。

        ·length.out:必为非负整数,缺省或NA是错误的。输出向量期待的输出长度。

        ·each:必为非负整数,值为1或NA是错误的。每一个元素重复each次。

times:同…

length.out:非负整数,输出向量期待的输出长度。

例1:

> rep(1:4,2)
[1] 1 2 3 4 1 2 3 4
> 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,each=2,len=4)
[1] 1 1 2 2
> rep(1:4,each=2,len=10)
 [1] 1 1 2 2 3 3 4 4 1 1
> 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

例2:

> rep(1,40*(1-.8))
[1] 1 1 1 1 1 1 1
> 40*(1-.8)
[1] 8
> rep(1,40*(1-.8)+1e-7)
[1] 1 1 1 1 1 1 1 1
> 40*(1-.8)+1e-7
[1] 8

例3:

> #replicate a list
> fred<-list(happy=1:10,name="squash")
> rep(fred,5)
$happy
 [1]  1  2  3  4  5  6  7  8  9 10

$name
[1] "squash"

$happy
 [1]  1  2  3  4  5  6  7  8  9 10

$name
[1] "squash"

$happy
 [1]  1  2  3  4  5  6  7  8  9 10

$name
[1] "squash"

$happy
 [1]  1  2  3  4  5  6  7  8  9 10

$name
[1] "squash"

$happy
 [1]  1  2  3  4  5  6  7  8  9 10

$name
[1] "squash"

例4:

> x<-.leap.seconds[1:3]
> rep(x,2)
[1] "1972-07-01 08:00:00 CST"
[2] "1973-01-01 08:00:00 CST"
[3] "1974-01-01 08:00:00 CST"
[4] "1972-07-01 08:00:00 CST"
[5] "1973-01-01 08:00:00 CST"
[6] "1974-01-01 08:00:00 CST"
> rep(as.POSIXlt(x),rep(2,3))
[1] "1972-07-01 08:00:00 CST"
[2] "1972-07-01 08:00:00 CST"
[3] "1973-01-01 08:00:00 CST"
[4] "1973-01-01 08:00:00 CST"
[5] "1974-01-01 08:00:00 CST"
[6] "1974-01-01 08:00:00 CST"
> rep(as.POSIXct(x),rep(2,3))
[1] "1972-07-01 08:00:00 CST"
[2] "1972-07-01 08:00:00 CST"
[3] "1973-01-01 08:00:00 CST"
[4] "1973-01-01 08:00:00 CST"
[5] "1974-01-01 08:00:00 CST"
[6] "1974-01-01 08:00:00 CST"
> rep(as.Date(x),rep(2,3))
[1] "1972-07-01" "1972-07-01" "1973-01-01"
[4] "1973-01-01" "1974-01-01" "1974-01-01"

例5:

> x<-factor(LETTERS[1:4]);names(x)<-letters[1:4]
> x
a b c d 
A B C D 
Levels: A B C D
> rep(x,2)
a b c d a b c d 
A B C D A B C D 
Levels: A B C D
> rep(x,each=2)
a a b b c c d d 
A A B B C C D D 
Levels: A B C D
> rep.int(x,2)
[1] A B C D A B C D
Levels: A B C D
> rep_len(x,10)
 [1] A B C D A B C D A B
Levels: A B C D