R创建不同的数字序列

时间:2019-01-04 20:59:28

标签: r

新手在这里

我想要等距的一系列介于0和20之间的数字。

为什么我会得到两组不同的数字?

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

seq(0:20)
#[1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21

任何帮助将不胜感激。谢谢

2 个答案:

答案 0 :(得分:4)

显然,当您将向量传递给seq()时,它仅显示1:length(vector),如

> seq(c(2, 4, 6, 100))
[1] 1 2 3 4
> seq(c('a', 2, mean))
[1] 1 2 3

我不认为您通常使用seq()。如果传递序列中的第一个值,最后一个值,以及可选的输出长度或步长,您将获得预期的行为。会更好

> seq(0, 20)
 [1]  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
> seq(from = 0, to = 20)
 [1]  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20

答案 1 :(得分:2)

查看documentation中的 seq 标头。

seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)), ...)

要实现与第一条语句相同的行为,应使用2个参数( from to )对其进行调用。

在第二条语句中,您仅用一个参数调用它,似乎它使用给定参数的长度作为从默认 from 值生成的元素数。 1。

使用6个元素的向量检查以下示例:

> seq(c(1,4,5,6,2,3))
[1] 1 2 3 4 5 6

在您的情况下,列表0:20的长度为20,并从1:1,2,...,21生成20个数字