[R] Partition a vector into select groups with fixed length

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Sun Aug 18 21:22:41 CEST 2019


Hello,
Bert's modular arithmetic way simplifies my code a lot.

breakVec <- function(x, n = 5){
   if(n < 1) stop(paste("Illegal value n:", n))
   f <- if(n == 1) "" else (seq_along(x) - 1) %/% n
   split(x, f)
}



Hope this helps,

Rui Barradas

Às 20:08 de 18/08/19, Bert Gunter escreveu:
> Perhaps simpler:
> Hint:  (seq_along(LETTERS) -1) %/% 5
> ## modular arithmetic can be useful for this sort of thing
> 
> 
> Bert Gunter
> 
> "The trouble with having an open mind is that people keep coming along and
> sticking things into it."
> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
> 
> 
> On Sun, Aug 18, 2019 at 11:47 AM Gerrit Eichner <
> gerrit.eichner using math.uni-giessen.de> wrote:
> 
>> Hi, Christofer,
>>
>> try something along
>>
>> len <- 5
>> split(Vec, rep(seq(ceiling(length(Vec)/len)), each = len))
>>
>>    Hth  --  Gerrit
>>
>> ---------------------------------------------------------------------
>> Dr. Gerrit Eichner                   Mathematical Institute, Room 212
>> gerrit.eichner using math.uni-giessen.de   Justus-Liebig-University Giessen
>> Tel: +49-(0)641-99-32104          Arndtstr. 2, 35392 Giessen, Germany
>> Fax: +49-(0)641-99-32109            http://www.uni-giessen.de/eichner
>> ---------------------------------------------------------------------
>>
>> Am 18.08.2019 um 20:01 schrieb Christofer Bogaso:
>>> Hi,
>>>
>>> Let say I have a vector as below
>>>
>>> Vec = LETTERS
>>>
>>> Now I want to break this vector into groups of the same length of 5.
>>>
>>> So,
>>> 1st group consists - "A" "B" "C" "D" "E"
>>> 2nd group - "F" "G" "H" "I" "J"
>>>
>>> and so on..
>>> last group will consist only the leftover elements
>>>
>>> I have a very large initial vector, so looking for some efficient way
>>> to achieve the same. Any pointer will be highly appreciated.
>>>
>>> Thanks for your time.
>>>
>>> ______________________________________________
>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list