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@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@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.