Skip to content

equating approximate values

7 messages · andrija djurovic, R. Michael Weylandt, vamshi999 +2 more

#
Hello List, 

I am having trouble finding the command for my problem. 

I have two arrays x and y. now i would like to compare the values of x and y
and then get the index of x which is exactly or approximately equal(+/- some
value ) to the values in y.
 x <- runif(100,min=0,max=5)
 y <- runif(10,min=0,max=5)


the threshold value(+/-) value can vary. for this example lets take it to be
.5

I know the regular method of doing this by writing different if and for
loops. But i have very big dataframe the computation time is very high for
this method. can anyone please tell me if there any functions to do this. 

thank you for your help. 

--
View this message in context: http://r.789695.n4.nabble.com/equating-approximate-values-tp4157551p4157551.html
Sent from the R help mailing list archive at Nabble.com.
#
Not sure what to make of the fact that your x, y are of different
lengths: if you mean to check all possible pairings, this is probably
what you need:

which(outer(x, y, "-") < threshold, arr.ind = TRUE)

Michael
On Sun, Dec 4, 2011 at 2:24 PM, andrija djurovic <djandrija at gmail.com> wrote:
#
My apologies: you need an abs() call as well:

which(abs(outer(x, y, "-")) < threshold, arr.ind = TRUE)

Michael

On Sun, Dec 4, 2011 at 6:25 PM, R. Michael Weylandt
<michael.weylandt at gmail.com> wrote:
#
this is exactly what i wanted. 

How to i select only the minimum value from this?. 

thank you 




My apologies: you need an abs() call as well:

which(abs(outer(x, y, "-")) < threshold, arr.ind = TRUE)

Michael




--
View this message in context: http://r.789695.n4.nabble.com/equating-approximate-values-tp4157551p4158691.html
Sent from the R help mailing list archive at Nabble.com.
Change which to which.min, but then you won't easily be able to get the corresponding x,y indices. Look at the arrayInd() function to translate the result to a particular x,y. 

Michael
On Dec 4, 2011, at 7:04 PM, vamshi999 <vamshi999 at gmail.com> wrote:

            
#
On Dec 5, 2011, at 8:02 AM, R. Michael Weylandt wrote:

            
The arrayInd help page is shared by the which help and which has an  
arr.ind=TRUE option that let's you encapsulate both steps:

which( abs(outer(x, y, "-")) == min(abs(outer(x, y, "-"))),  
arr.ind=TRUE)
David Winsemius, MD
West Hartford, CT