R, составляющий список с приращением, отличным от 1
В R я могу напечатать
> alist<-c(1:10)
> alist
[1] 1 2 3 4 5 6 7 8 9 10
Как создать список, который увеличивается с шагом, который не равен 1? Например, список четных чисел
Ответ 1
Команда seq делает это. Выполнение seq(1,10,1) делает то, что делает 1:10. Тем не менее, вы можете изменить последний параметр, чтобы быть чем-то другим, чтобы он мог выполнять действия любого размера, который вам нравится.
> #a vector of even numbers
> seq(0, 10, 2)
> [1] 0 2 4 6 8 10
Как в сторону, то, что вы делаете, это вектор, а не список. Список может содержать много совершенно разных видов информации, тогда как векторы содержат одинаковые значения в каждой позиции индекса.
Ответ 2
Так как R использует матрицы, вы можете использовать скалярное умножение для модификации каждого элемента в вашем массиве.
> r <-c(0:10)
> r <- r * 2
> r
[1] 0 2 4 6 8 10 12 14 16 18 20
или
> r <-c(0:10)*2
> r
[1] 0 2 4 6 8 10 12 14 16 18 20
Ответ 3
К моему удивлению, решение @Travis значительно (4 раза) быстрее. Если вы не делаете что-то действительно огромное (и поколение поколений оказывается лимитирующим фактором), я все равно проголосую за seq, поскольку его гораздо легче читать.
изменить: как указывает Марек, seq.int еще быстрее.