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.
equating approximate values
7 messages · andrija djurovic, R. Michael Weylandt, vamshi999 +2 more
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20111204/103c8ef4/attachment.pl>
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:
Hi. Maybe this can help you (you can try additionally to incorporate threshold):
set.seed(1) x<-rnorm(10,10,1) values <- sample(1:10,10) ?#values that we are looking for mat <- matrix(c(x,values),ncol=2) closest<-function(x,values) ? ?#function is an example from The R book
(Crawley)
+ {
+ x[which(abs(x-values)==min(abs(x-values)))]
+ }
apply(mat[,2,drop=FALSE],1,function(y) closest(mat[,1],y))
?[1] 10.183643 ?9.164371 ?9.164371 ?9.164371 ?9.164371 ?9.164371 ?9.164371 ?9.164371 ?[9] ?9.164371 ?9.164371 On Sun, Dec 4, 2011 at 7:00 PM, vamshi999 <vamshi999 at gmail.com> wrote:
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.
______________________________________________ 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.
? ? ? ?[[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.
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:
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:
Hi. Maybe this can help you (you can try additionally to incorporate threshold):
set.seed(1) x<-rnorm(10,10,1) values <- sample(1:10,10) ?#values that we are looking for mat <- matrix(c(x,values),ncol=2) closest<-function(x,values) ? ?#function is an example from The R book
(Crawley)
+ {
+ x[which(abs(x-values)==min(abs(x-values)))]
+ }
apply(mat[,2,drop=FALSE],1,function(y) closest(mat[,1],y))
?[1] 10.183643 ?9.164371 ?9.164371 ?9.164371 ?9.164371 ?9.164371 ?9.164371 ?9.164371 ?[9] ?9.164371 ?9.164371 On Sun, Dec 4, 2011 at 7:00 PM, vamshi999 <vamshi999 at gmail.com> wrote:
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.
______________________________________________ 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.
? ? ? ?[[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.
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:
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.
______________________________________________ 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.
On Dec 5, 2011, at 8:02 AM, R. Michael Weylandt wrote:
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.
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)
Michael On Dec 4, 2011, at 7:04 PM, vamshi999 <vamshi999 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.
______________________________________________ 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.
______________________________________________ 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.
David Winsemius, MD West Hartford, CT