R номеров от 1 до 100
Возможный дубликат:
Как сгенерировать вектор, содержащий числовую последовательность?
В R, как я могу получить список чисел от 1 до 100? Другие языки имеют функцию "диапазон" для этого. R диапазон делает что-то еще полностью.
> range(1,100)
[1] 1 100
Ответы
Ответ 1
Ваша ошибка ищет range
, которая дает вам range
вектора, например:
range(c(10, -5, 100))
дает
-5 100
Вместо этого посмотрите на оператор :
, чтобы дать последовательности (с размером шага одного):
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)
Ответ 2
Если вам нужна конструкция для быстрого примера воспроизведения, используйте оператор:.
Но если вы динамически создаете вектор/диапазон чисел, используйте вместо этого seq().
Скажем, вы создаете вектор/диапазон чисел от a до b с помощью a: b, и вы ожидаете, что это будет возрастающая серия. Затем, если b оценивается как меньше a, вы получите уменьшающуюся последовательность, но вы никогда не будете уведомлены об этом, и ваша программа продолжит выполнение с неправильным видом ввода.
В этом случае, если вы используете seq(), вы можете установить знак аргумента by, чтобы он соответствовал направлению вашей последовательности, и ошибка будет поднята, если они не совпадут. Например,
seq(a, b, -1)
вызовет ошибку при a = 2, b = 6, потому что кодер ожидает уменьшение последовательности.