Я хотел бы создать вектор, в котором каждый элемент является i+6th
элементом другого вектора.
Например, в векторе длиной 120 я хочу создать другой вектор длиной 20, в котором каждый элемент является значением i, i+6, i+12, i+18...
исходного вектора, т.е. я хочу извлечь каждый 6-й элемент оригинала.
seq.int
работает быстрее в микробенчмарках, но я подозреваю, что любое повышение производительности в реальной программе будет затмевается временем работы других частей.a = 1:120; b = [::6]
, Python не может сделать первое, а R - второе.Еще одна уловка для получения последовательных частей (помимо уже упомянутого решения seq) - использовать короткий логический вектор и использовать повторное использование вектора:
источник
seq
вы должны иметь возможность вызыватьlength
вектор.letters[letters < 'm'][c(TRUE, FALSE, FALSE)]
Я думаю, вы спрашиваете о двух вещах, которые не обязательно совпадают
Вы можете сделать это, проиндексировав последовательность:
Легкий способ сделать это - добавить в логический фактор ЛОЖЬ до тех пор, пока
i+6
:источник
foo[1:(i+6)!=(i+6)]
т.е. выводил все значения, кроме шестого.Чтобы выбрать каждый n-й элемент из любой начальной позиции в векторе
источник