Juliet Ndukum
2011-Nov-15 22:55 UTC
[R] Convert full matrix back to lower triangular matrix
Given a vector;> ab = seq(0.5,1, by=0.1)> ab[1] 0.5 0.6 0.7 0.8 0.9 1.0 The euclidean distance between the vector elements is given by the lower triangular matrix > dd1 dist(ab,"euclidean")> dd1 1 2 3 4 52 0.1 3 0.2 0.1 4 0.3 0.2 0.1 5 0.4 0.3 0.2 0.1 6 0.5 0.4 0.3 0.2 0.1 Convert the lower triangular matrix to a full matrix> ddm = as.matrix(dd1)> ddm 1 2 3 4 5 61 0.0 0.1 0.2 0.3 0.4 0.52 0.1 0.0 0.1 0.2 0.3 0.43 0.2 0.1 0.0 0.1 0.2 0.34 0.3 0.2 0.1 0.0 0.1 0.25 0.4 0.3 0.2 0.1 0.0 0.16 0.5 0.4 0.3 0.2 0.1 0.0 I would be grateful if someone could provide me with a code to convert ddm to the lower triangular matrix as before i.e. dd1 above. Your help will be greatly appreciated.JN NB: I apologize for the poor output of the previous email. Thanks for your understanding. [[alternative HTML version deleted]]
Dennis Murphy
2011-Nov-16 05:38 UTC
[R] Convert full matrix back to lower triangular matrix
Hi: (1) Here is why your e-mails look mangled on this list: [[alternative HTML version deleted]] R-help is a text-only list, so please change your mailer's settings to send ASCII text rather than HTML. (2) The print method you see displayed in dd1 is equivalent to the following: ddm * lower.tri(ddm) Note that lower.tri(ddm) produces a logical matrix; in R, when you multiply a numeric object by a logical, the latter is converted to 0's and 1's. In this case, the lower triangular elements are retained while the other elements are coerced to 0. HTH, Dennis On Tue, Nov 15, 2011 at 2:55 PM, Juliet Ndukum <jpntsang at yahoo.com> wrote:> Given a vector;> ab = seq(0.5,1, by=0.1)> ab[1] 0.5 0.6 0.7 0.8 0.9 1.0 > The euclidean distance between the vector elements is given by the lower triangular matrix?> dd1 > ?dist(ab,"euclidean")> dd1? ? 1 ? 2 ? 3 ? 4 ? 52 0.1 ? ? ? ? ? ? ? ?3 0.2 0.1 ? ? ? ? ? ?4 0.3 0.2 0.1 ? ? ? ?5 0.4 0.3 0.2 0.1 ? ?6 0.5 0.4 0.3 0.2 0.1 > Convert the lower triangular matrix to a full matrix> ddm = as.matrix(dd1)> ddm? ? 1 ? 2 ? 3 ? 4 ? 5 ? 61 0.0 0.1 0.2 0.3 0.4 0.52 0.1 0.0 0.1 0.2 0.3 0.43 0.2 0.1 0.0 0.1 0.2 0.34 0.3 0.2 0.1 > ?0.0 0.1 0.25 0.4 0.3 0.2 0.1 0.0 0.16 0.5 0.4 0.3 0.2 0.1 0.0 > I would be grateful if someone could provide me with a code to convert ddm to the lower triangular matrix as before i.e. dd1 > above. > Your help will be greatly appreciated.JN > NB: I apologize for the poor output of the previous email. Thanks for ?your understanding. > ? ? ? ?[[alternative HTML version deleted]] > > > ______________________________________________ > 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. > >