Clever, Don. Here's a more explicit approach that generalizes (if I haven't made any dumb errors):
x <- c(1:5,10:12) ## generate vector of indices by outer and %% i <- seq_along(x) nc <- 4 ## number of columns desired ## get subscripting indices via outer() and %% indx <- outer(i,rev(i),"+") %% (length(x))[,seq_len(nc)]+1 matrix(x[indx],ncol = nc) Cheers, Bert 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 Mon, Mar 6, 2017 at 9:46 AM, MacQueen, Don <macque...@llnl.gov> wrote: > How about this: > > p0 <- 1:4 > > matrix( c( rep( c(p0, rep(0, 4)) , times=3) , p0) , 7, 4) > > Of course, it would take some effort to generalize it to different lengths > for p0. > > -Don > > -- > Don MacQueen > > Lawrence Livermore National Laboratory > 7000 East Ave., L-627 > Livermore, CA 94550 > 925-423-1062 > > > On 3/6/17, 8:18 AM, "R-help on behalf of Peter Thuresson" > <r-help-boun...@r-project.org on behalf of peter.thures...@umea.se> wrote: > > Hello, > > Is there a function in R which can transform, let say a vector: > > c(1:4) > > to a matrix where the vector is repeated but "projected" +1 one step down > for every (new) column. > I want the output below from the vector above, like this: > > p<-c(1,2,3,4,0,0,0,0,1,2,3,4,0,0,0,0,1,2,3,4,0,0,0,0,1,2,3,4) > > matrix(p,7,4) > > best regards / Peter > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. ______________________________________________ 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.