# Assigning VALUES of data frames

hey how can i assign or match the value of one data frame with nearest value(equal values are not available) in other data frame?

A=data.frame(lat=runif(10,29,34),
long=runif(10,69,72))
B=data.frame(lat=runif(10,29,34),
long=runif(10,69,72))

In terms of an algorithmic approach you would...
1)Match the values from one frame to all the values of the second frame
2)calculate a distance metric between pairs of values. Probably absolute distance.
3)group by the first set of values (the ones you are matching to) apply a per group ordering over the distance metric, so that the value closest to zero is the first value.
4) take the first pair in each group

how you can write code for that ? i am unable to construct the code

``````library(tidyverse)
df1 <- data.frame(
entry=1:10,
lat1=runif(10,29,34))
df2 <- data.frame(
entry2=1:10,
lat2=runif(10,29,34))

step1 <- expand_grid(df1, df2)
step2 <- mutate(step1, distance_metric = abs(lat1 - lat2))
step3 <- arrange(step2, entry, distance_metric)
step4 <- group_by(step3, entry) %>% slice(1)
step5 <- ungroup(step4) %>% select(lat1, lat2)``````

its expand_grid or expand.grid?

why its giving error

``````library(tidyverse)
library(dplyr)
df1 <- data.frame(
entry=1:10,
lat1=runif(10,29,34))
df2 <- data.frame(
entry2=1:10,
lat2=runif(10,29,34))

step1 <- expand_grid(df1, df2)
#> Error in expand_grid(df1, df2): could not find function "expand_grid"
step2 <- mutate(step1, distance_metric = abs(lat1 - lat2))
#> Error in mutate(step1, distance_metric = abs(lat1 - lat2)): object 'step1' not found
step3 <- arrange(step2, entry, distance_metric)
step4 <- group_by(step3, entry) %>% slice(1)
step5 <- ungroup(step4) %>% select(lat1, lat2)
``````packageVersion("tidyr")