Re: [R] Data frame with 3 columns to matrix

From: David Winsemius <dwinsemius_at_comcast.net>
Date: Tue, 19 Apr 2011 07:02:17 -0400

On Apr 19, 2011, at 3:46 AM, Michael Bach wrote:

> Dear R Users,
>
> Lets assume I have this data frame:
>
> x y z
> 1 1.00 5 0.5
> 2 1.02 5 0.7
> 3 1.04 7 0.1
> 4 1.06 9 0.4
>
> x and y columns are sorted and the values not necessarily integers. z
> values are not sorted. Now I would like to create a matrix out of
> this
> with x as first column values and y as first row values. Matrix
> element
> a_11 shall be left NA. The a_ij should have the z value for the
> corresponding x and y pair. The result shall be some sort of a grid
> and
> then e.g. look like:
>
> [,1] [,2] [,3] [,4] [,5]
> [1,] NA 5 6 7 9 (y)
> [2,] 1.00 0.5 NA NA NA
> [3,] 1.02 0.7 NA NA NA
> [4,] 1.04 NA NA 0.1 NA
> [5,] 1.06 NA NA NA 0.4
> (x)
>
> This example is just for illustration. The resulting matrix should
> have
> more numeric values than NA's.
>
> I hope I made myself clear.

Perhaps but only if the third row of your example was incorrectly constructed:
 > dta <- rd.txt(" x y z

1 1.00 5 0.5
2 1.02 5 0.7
3 1.04 7 0.1
4 1.06 9 0.4")
#rd.txt() is a combo fn of read.table and textConnection

 > mat <- matrix(NA, ncol=NROW(dta)+1, nrow=NROW(dta)+1)
 > mat[2:NROW(mat),1] <- dta[["x"]]
 > mat[1,2:NROW(mat)] <- dta[["y"]]

 > diag(mat) <- c(NA, dta[["z"]])
 > mat

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

[1,]   NA  5.0  5.0  7.0  9.0
[2,] 1.00  0.5   NA   NA   NA
[3,] 1.02   NA  0.7   NA   NA
[4,] 1.04   NA   NA  0.1   NA
[5,] 1.06   NA   NA   NA  0.4


> Any hints on how to achieve this? Is there
> already a function that does it? All searches I did pointed me to
> data
> type frame to matrix conversion...
>

David Winsemius, MD
West Hartford, CT



R-help_at_r-project.org mailing list
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. Received on Tue 19 Apr 2011 - 11:06:04 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 19 Apr 2011 - 12:30:31 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive