r - Sorting a Square Matrix -
i have 75 x 75
square matrix. values in it, other labels decimals. want pairs of labels having values above or below cutoff set. say, have following
b c d 1 0.2 0.43 0.16 b 0.2 1 0.86 0.28 c 0.43 0.86 1 0.76 d 0.16 0.28 0.76 1
i want
b c 0.86 c d 0.76 c 0.43
how can go (without getting duplicates)?
thanks
first need convert representation 1 row each value; 1 way converting matrix , data.frame. avoid duplicates, set lower triangle (possibly including diagonal) na before converting data frame, , take subset of data frame values aren't nas.
mtx <- matrix( rnorm(16), 4, 4, dimnames = list( letters[1:4], letters[1:4])) mtx[lower.tri(mtx, diag=true)] <- na dx <- as.data.frame(as.table(mtx)) dx <- subset(dx, !is.na(freq))
you can take subset desired resulting data frame.
> subset(dx, freq>0) var1 var2 freq 5 b 1.9564158 9 c 1.7188939 14 b d 0.1848542
Comments
Post a Comment