57

可能重复:
如何生成包含数字序列的向量?

在 R 中,如何获取从 1 到 100 的数字列表?其他语言有一个功能“范围”来做到这一点。R 的范围完全不同。

> range(1,100)
[1]   1 100
4

2 回答 2

129

你的错误是寻找range,它给你range一个向量,例如:

range(c(10, -5, 100))

 -5 100

相反,请查看:运算符以给出序列(步长为 1):

1:100

或者您可以使用该seq功能进行更多控制。例如,

##Step size of 2
seq(1, 100, by=2)

或者

##length.out: desired length of the sequence
seq(1, 100, length.out=5)
于 2012-07-12T14:45:39.503 回答
3

如果您需要该构造来快速使用示例,请使用 : 运算符。

但是,如果您要动态创建一个向量/数字范围,请改用 seq() 。

假设您正在使用 a:b 创建从 a 到 b 的向量/数字范围,并且您希望它是一个递增的系列。然后,如果 b 被评估为小于 a,您将得到一个递减序列,但您永远不会收到通知,并且您的程序将继续执行错误类型的输入。

在这种情况下,如果使用 seq(),则可以设置by参数的符号以匹配序列的方向,如果它们不匹配,则会引发错误。例如,

seq(a, b, -1)

将引发 a=2, b=6 的错误,因为编码器期望一个递减序列。

于 2012-07-13T14:26:25.133 回答