From: Michael Bach <phaebz_at_gmail.com>

Date: Tue, 19 Apr 2011 15:16:54 +0300

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 - 12:21:20 GMT

Date: Tue, 19 Apr 2011 15:16:54 +0300

David Winsemius <dwinsemius_at_comcast.net> writes:

> 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
**>
**>
*

Thanks for your answer David,

but this yields a diagonal matrix only. I think I did not make myself clear enough. In the original 3 column data frame, there could have been a pair of x and y with identical y's but different x's and z's. The way my data source is derived, there is a guarantee that there is are no two rows with identical x and y in the original data frame. In the end, x and y serve as a grid, with z values at each point in the grid or NA's if there is no z value for a x and y pair. The number of rows in the data frame is then equal to the number of non-NA values in the resulting matrix.

Another try, lets assume this original data frame:

x y z

1 2 5 1

2 2 6 1

3 3 7 1

4 3 8 1

5 3 9 1

6 5 10 2

7 5 11 2

8 5 12 2

Then I would like to get

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]

[1,] NA 5 6 7 8 9 10 11 12 [2,] 2 1 1 [3,] 2 [4,] 3 1 1 1 [5,] 3 [6,] 3 [7,] 5 2 2 2 [8,] 5 [9,] 5

I left out all the NA's, except the first, where there is no z value, say e.g. x=5 and y=8.

Do you see what I mean?

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 - 12:21:20 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 - 13:50: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.
*