新手在这里
我想要等距的一系列介于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
任何帮助将不胜感激。谢谢
答案 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个数字