I have a data set with some locations:
ex <- data.frame(lat = c(55, 60, 40), long = c(6, 6, 10))
and than I have climate data
clim <- structure(list(lat = c(55.047, 55.097, 55.146, 55.004, 55.054,
55.103, 55.153, 55.202, 55.252, 55.301), long = c(6.029, 6.0171,
6.0051, 6.1269, 6.1151, 6.1032, 6.0913, 6.0794, 6.0675, 6.0555
), alt = c(0.033335, 0.033335, 0.033335, 0.033335, 0.033335,
0.033335, 0.033335, 0.033335, 0.033335, 0.033335), x = c(0, 0,
0, 0, 0, 0, 0, 0, 0, 0), y = c(1914, 1907.3, 1901.8, 1921.1,
1914.1, 1908.3, 1902.4, 1896, 1889.8, 1884)), row.names = c(NA,
10L), class = "data.frame", .Names = c("lat", "long", "alt",
"x", "y"))
lat long alt x y
1 55.047 6.0290 0.033335 0 1914.0
2 55.097 6.0171 0.033335 0 1907.3
3 55.146 6.0051 0.033335 0 1901.8
4 55.004 6.1269 0.033335 0 1921.1
5 55.054 6.1151 0.033335 0 1914.1
6 55.103 6.1032 0.033335 0 1908.3
7 55.153 6.0913 0.033335 0 1902.4
8 55.202 6.0794 0.033335 0 1896.0
9 55.252 6.0675 0.033335 0 1889.8
10 55.301 6.0555 0.033335 0 1884.0
What I want to do is to "merge" both datasets to have climate data in the ex
file. The values of lat
and long
in ex
are different than values of lat
and long
in clim
so I they can not be merged directly (it is the same for long
).
I need to find the best point (closest point in clim
for each of row in the ex
considering both lat
and long
)
The expected output for the example is:
lat long alt x y
1 55 6 0.033335 0 1914.0
2 60 6 0.033335 0 1884.0
3 40 10 0.033335 0 1921.1