[R] Partition a vector into select groups with fixed length
Rui Barradas
ru|pb@rr@d@@ @end|ng |rom @@po@pt
Sun Aug 18 20:37:26 CEST 2019
Hello,
The following function will do it.
It uses a standard cumsum trick to create a break vector f.
And predicts special cases (n = 0 or n = 1).
breakVec <- function(x, n = 5){
if(n < 1) stop(paste("Illegal value n:", n))
if(n == 1){
f = ""
}else{
f <- c(1, rep(0, n - 1))
f <- rep(f, length.out = length(x))
f <- cumsum(f)
}
split(x, f)
}
breakVec(LETTERS)
breakVec(LETTERS, 4)
breakVec(LETTERS, 1)
breakVec(LETTERS, -1)
Hope this helps,
Rui Barradas
Às 19:01 de 18/08/19, Christofer Bogaso escreveu:
> 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.
>
More information about the R-help
mailing list