# [R] folding table into a matrix

Spencer Graves spencer.graves at pdf.com
Thu Sep 23 22:22:37 CEST 2004

```      Have you looked at "index arrays" in "An Introduction to R",
available as the first menu option after "help.start()" in R?  The
version I got with R 1.9.1 for Windows includes the following:

> x <- array(1:20,dim=c(4,5))   # Generate a 4 by 5 array.

> x

[,1] [,2] [,3] [,4] [,5]

[1,]    1    5    9   13   17

[2,]    2    6   10   14   18

[3,]    3    7   11   15   19

[4,]    4    8   12   16   20

> i <- array(c(1:3,3:1),dim=c(3,2))

> i                             # i is a 3 by 2 index array.

[,1] [,2]

[1,]    1    3

[2,]    2    2

[3,]    3    1

> x[i]                          # Extract those elements

[1] 9 6 3

> x[i] <- 0                     # Replace those elements by zeros.

> x

[,1] [,2] [,3] [,4] [,5]

[1,]    1    5    0   13   17

[2,]    2    0   10   14   18

[3,]    0    7   11   15   19

[4,]    4    8   12   16   20

>
The key point here is that "i" is a 3x2 array, and x[i] references
the 3 elements of x that have the row and column indices in x.  Does
this provide the information you need?

hope this helps.  spencer graves

Gene Cutler wrote:

> I'm just getting started with R, so feel free to point me to the
> (though I've been unable to find it myself).  This does seem like a
> rather basic question.
> I want to fold a table into a matrix.  The table is formatted like so:
>
> Column_Index  Value
> 1             486
> 2             688
> 3             447
> 4             555
> 5             639
> 1             950
> 2             881
> 3             1785
> 4             1216
> 1             612
> 2             790
> 3             542
> 4             1310
> 5             976
>
> And I want to end up with something like this:
>
>       [,1]  [,2]  [,3]  [,4]  [,5]
> [1,]   486   688   447   555   639
> [2,]   950   881  1785  1216    NA
> [3,]   612   790   512  1310   976
>
> Since not all the rows are complete, I can't just reformat using
> matrix(), I need to go by the index information in the Column_Index
> column.  This seems like something simple to do, but I'm stumped.
>
> Thanks.
>
> -- Gene
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help