Подтвердить что ты не робот

Как вы создаете векторы с определенными интервалами в R?

У меня вопрос о создании векторов. Если я делаю a <- 1:10, "a" имеет значения 1,2,3,4,5,6,7,8,9,10.

Мой вопрос в том, как вы создаете вектор с определенными интервалами между его элементами. Например, я хотел бы создать вектор, который имеет значения от 1 до 100, но только считать в интервале 5, так что я получаю вектор, который имеет значения 5,10,15,20,..., 95,100

Я думаю, что в Matlab мы можем сделать 1:5:100, как это сделать, используя R?

Я мог бы попробовать сделать 5*(1:20), но есть ли более короткий путь? (так как в этом случае мне нужно было бы знать всю длину (100), а затем делиться на размер интервала (5), чтобы получить 20)

4b9b3361

Ответ 1

В R эквивалентная функция seq, и вы можете использовать ее с опцией by:

seq(from = 5, to = 100, by = 5)
# [1]   5  10  15  20  25  30  35  40  45  50  55  60  65  70  75  80  85  90  95 100

В дополнение к by вы также можете использовать другие параметры, такие как length.out и along.with.

length.out. Если вы хотите получить в общей сложности 10 чисел от 0 до 1, например:

seq(0, 1, length.out = 10)
# gives 10 equally spaced numbers from 0 to 1

вдоль. с. Он берет длину вектора, который вы подаете в качестве входного сигнала, и предоставляет вектор от 1: длина (ввод).

seq(along.with=c(10,20,30))
# [1] 1 2 3

Хотя вместо использования опции along.with рекомендуется использовать seq_along в этом случае. Из документации для ?seq

seq является общим, и здесь описывается только метод по умолчанию. Обратите внимание, что он отправляет в класс аргумент first независимо от имени аргумента. Это может иметь непреднамеренные последствия, если он вызывается только одним аргументом, предполагающим, что это следует принимать так же, как и с.: В этом случае гораздо лучше использовать seq_along.

seq_along: Вместо seq(along.with(.))

seq_along(c(10,20,30))
# [1] 1 2 3

Надеюсь, что это поможет.