I'm trying to calculate the euclidean distances between one vector on the one hand and multiple vectors on the other hand using R.
So far, I've been following this documentation https://cran.r-project.org/web/packages/neighbr/neighbr.pdf and used distance(x, y, "euclidean"). This works perfectly well if I only calculate the distance between two vectors, i.e. when I have one row of data in both x and y. However, in my original dataset, I have multiple rows in y and I'd like to calculate the distances between each of these rows and the single row in x.
How is it possible to do this?
x = structure(list(`Feature I` = 0.85649790378586, `Feature II` = 0.851856356221207, `Feature III` = 0.799580263077569, `Feature IV` = 0.895081402129565, `Feature V` = 0.920173237422567), row.names = c(NA, -1L), class = c("tbl_df", "tbl", "data.frame"))
y = structure(list(`Feature I` = c(0.0444280626160322, 0.00326398594129033, 0.0218000692329814), `Feature II` = c(0.0481646509894741, 0.00509786237104908, 0.0276902769176258), `Feature III` = c(0.0456380620204004, 0.00422956673025977, 0.0347273727088683), `Feature IV` = c(0.0365954415011219, 0.00422974884164406, 0.0328151120410415), `Feature V` = c(0.0384331094111439, 0.00362614754925969, 0.0260414956219995)), row.names = c(NA, -3L), class = c("tbl_df", "tbl", "data.frame"))
x
. – Gregor Thomasdput()
for a copy/pasteable version of data you have, e.g.,dput(your_data[1:4, ])
) – Gregor Thomasx
, writing the formula manually should be easy,y$dist_from_x = sqrt((y$x - x$x)^2 + (y$y - x$y)^2)
. The single value from thex
data frame will be "recycled" for every row ofy
. – Gregor Thomasdput()
I can copy/paste your data into my R session, develop a solution, and show you the result. – Gregor Thomas