[R] Calculating Minimum Absolute Difference of Two Numeric Vectors
PIKAL Petr
petr@p|k@| @end|ng |rom prechez@@cz
Tue Aug 18 11:00:07 CEST 2020
Hi
maybe
min(abs(outer(x,y, "-")))
If you want indices
mm <- min(abs(outer(x,y, "-")))
which(abs(outer(x,y, "-"))== mm, arr.ind=TRUE)
And in original vectors
x[which(abs(outer(x,y, "-"))== mm, arr.ind=TRUE)[1]]
y[which(abs(outer(x,y, "-"))== mm, arr.ind=TRUE)[2]]
Cheers
Petr
> -----Original Message-----
> From: R-help <r-help-bounces using r-project.org> On Behalf Of Dario Strbenac
> Sent: Tuesday, August 18, 2020 9:00 AM
> To: r-help using r-project.org
> Subject: [R] Calculating Minimum Absolute Difference of Two Numeric
Vectors
>
> Good day,
>
> What is a fast and efficient way to calculate the minimum absolute
difference
> between two vectors of numbers? The two vectors have unequal length. I
> would also like to know the index of the first vector and the second
vector
> which results in the minimum absolute difference. For example:
>
> x <- rpois(500, 100)
> y <- rpois(300, 30)
>
> Is there a much faster way than a nested for loop without resorting to
Rcpp?
>
> --------------------------------------
> Dario Strbenac
> University of Sydney
> Camperdown NSW 2050
> Australia
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
More information about the R-help
mailing list