[R] identify() doesn't return "true" numbers

greatest.possible.newbie daniel.hoop at gmx.net
Fri May 11 14:28:43 CEST 2012


Dear R community.

I am using the identify() function to identify outliers in my dataset.
This is the code I am using:

####################################################################
 # Function to allow identifying points in the QQ plot (by mouseclicking)
qqInteractive <- function(..., IDENTIFY = TRUE)
{
  qqplot(...) -> X
  abline(a=0,b=1)
  if(IDENTIFY) return(identify(X))
  invisisble(X)
} 

qqplot.mv.interactive <- function (data, xlim=NULL, ylim=NULL)
{
x <- as.matrix(data) # n x p numeric matrix
center <- colMeans(x) # centroid
n <- nrow(x); p <- ncol(x); cov <- cov(x);
d <- mahalanobis(x,center,cov) # distances
qqInteractive(qchisq(ppoints(n),df=p),d,                  # ppoints(n) makes
a sequence from 0 to 1. with stepsize 1/n
       main="QQ Plot Assessing Multivariate Normality",   # qchisq() makes a
chi squared distribution function for the given probabilities in ppoints(n)
and degress of freedom df
       ylab="Mahalanobis D2", xlim=xlim, ylim=ylim)
#abline(a=0,b=1)
}

y <- c((1:100)+rnorm(100, sd=100))
x <- c(1:100)
windows();qqInteractive(x,y)
####################################################################

When i click the points in the graph identify() only returns the number of
the points in the order they are lying on the X-axis. Let's say I mark the
point in the upper right corner, identify() will return 100. But what I want
is the number in the original dataset y.  Lets say the point was at y[87].
Otherwise I wont be able to remove this point from my original dataset.

I hope you understand my problem. I apreciate every help.
Regards, Daniel Hoop


--
View this message in context: http://r.789695.n4.nabble.com/identify-doesn-t-return-true-numbers-tp4626273.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list