Как извлекать X количество элементов из вектора каждый X раз

#r #iteration #character #extract #element

Вопрос:

У меня есть большой символ длиной 4800. Элементы в векторе расположены не в правильном порядке, поэтому я хотел бы это изменить.

Порядок должен состоять из первых 96 элементов, за которыми следуют третьи 96 элементов, за которыми следуют пятые 96 элементов, седьмые 96 элементов,… до последних 96 элементов. Затем за ним должны следовать вторые 96 элементов, четвертые 96 элементов, шестые 96 элементов, …. до последних 96. Таким образом, в принципе, извлеките 96 элементов с шагом 96 до конца персонажа.

Так что я мог бы сделать это вот так:

 icfinal[c(1:96,193:289,386:481,...)]
 

Но это займет у меня много времени. Кто-нибудь знает, как решить эту проблему с помощью одной функции?

Очень признателен!

Комментарии:

1. из 289, почему это не 385?? Также 193:289-это 97 элементов, а не 96

Ответ №1:

Согласно вашей логике, если вам нужны первые 96, то третий, а затем пятый, мы могли бы сделать что-то вроде:

 icfinal[outer(1:96, 96 * seq(0, 4800/96, 2), " ")]