Re: [R] how to get column/row info from a dist object?

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Fri, 11 May 2007 22:03:53 -0400

On 5/11/07, Pedro Mardones <mardones.p_at_gmail.com> wrote:
> Dear R users;
>
> Is it possible to get the row and column number of a particular entry
> in a dist object?
>
> Let's say that I want to find the position of the value 1.1837 (the
> last entry on the dist object below), that is [6,3]. Can I get those
> values without transforming the object to a matrix?, i.e. working with
> the dist object only.
>
> 1 2 3
> 2 0.23935864
> 3 0.56655914 0.71923104
> 4 0.15272561 0.37926989 0.43931332
> 5 0.17728654 0.13355685 0.73025495
> 6 0.61783536 0.52055379 1.18374889
>
> Thanks for any idea
> PM

Try this.

row.col <- function(dd, value) {

	if (length(value) == 1) {
		g <- grep(value, dd)
		N <- attr(dd, "Size")
		idx <- cumsum(seq(N-1, 1))
		ic <- sum(g > idx) + 1
		ir <- g - c(0,idx)[ic] + ic
		c(row = ir, col = ic)
	} else sapply(value, row.col, dd = dd)

}

# test
set.seed(1)
x <- matrix(rnorm(100), nrow=5)
dd <- dist(x)
dd
dd[7]
row.col(dd, dd[7])
row.col(dd, unlist(dd))



R-help_at_stat.math.ethz.ch 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 Sat 12 May 2007 - 02:08:27 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 Sat 12 May 2007 - 04:31:22 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.