# [R] Matrix

Bert Gunter bgunter.4567 at gmail.com
Mon Mar 6 20:00:20 CET 2017

```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 <macqueen1 at llnl.gov> wrote:
>
> 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-bounces at r-project.org on behalf of peter.thuresson at 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 at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>     https://stat.ethz.ch/mailman/listinfo/r-help