:操作

  1. 创建一个整数序列

    > 1:20
    [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
    > 15:1
    [1] 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1
    

    :类似python中的切片(slice)操作。

  2. 创建一个浮点型序列

    > pi:10
    [1] 3.141593 4.141593 5.141593 6.141593 7.141593 8.141593 9.141593
    > 6:pi
    [1] 6 5 4
    

是小数还是整数,取决与:前面的数字的类型。

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, 3, by=0.5)
[1] 0.0 0.5 1.0 1.5 2.0 2.5 3.0

seq有点类似numpy中的arangeby参数是间隔。

> seq(2, 5, length=10)
 [1] 2.000000 2.333333 2.666667 3.000000 3.333333 3.666667 4.000000 4.333333 4.666667
[10] 5.000000
> length(seq(2, 5, length=10))
[1] 10

创建长度为10的序列,起始位置为2和5.

> my_seq <- seq(5, 10, length=30)
> 1:length(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] 28 29 30
> 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] 28 29 30
> 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] 28 29 30

同样的目的可以使用好几种办法来实现,R推崇使用最短的那个方案,尽量使用R的内置函数,因为这个已经被优化过,速度快。

使用rep创建重复元素序列

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

results matching ""

    No results matching ""