R Cheat Sheet (3): Sequences of Numbers

1. 使用“:”运算符生成数字序列

  可以使用“:”操作符生成数字序列:

> 1:20
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
> pi:10
[1] 3.141593 4.141593 5.141593 6.141593 7.141593 8.141593 9.141593
> 15:1
 [1] 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1

   查看运算符的帮助文档,需要使用单引号“‘”:

> ?':'

2. 使用seq()函数生成数字序列

  使用seq() 函数也可以生成数字序列,seq() 函数有更多选项,如指明相邻两数间隔和序列长度等:

> seq(1, 20)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
> seq(0, 10, by=0.5)
 [1]  0.0  0.5  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0
> my_seq <- seq(5, 10, length=30)
> length(my_seq)
[1] 30

  使用along.with 参数可以生成与指定序列等长的序列:

> seq(along.with = my_seq)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

也可以使用seq_along() 函数实现同样效果:

> seq_along(my_seq)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

一般来说,R提供的内建函数都是经过优化的,尽量使用内建函数。

3. 使用rep()函数生成重复序列

  rep() 函数用于生成重复序列:

> rep(0, times = 40)
 [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> rep(c(0, 1, 2), times = 10)
 [1] 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2
> rep(c(0, 1, 2), each = 10)
 [1] 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2