Итак, у меня очень большие строки данных (~ 10 ^ 5); каждая строка содержит широту, долготу и классификацию в системе классификации климата KG. Я написал следующий код, который должен быть в состоянии взять произвольную пару долгота-широта и вернуть номер строки, который наиболее точно соответствует. Это просто не работает. Я просмотрел в Интернете довольно много вопросов, касающихся Index-and-Match в R, но ничего не получилось.
KGlookup <- function(longitude, latitude)
{
lat = 0.5*round(latitude*2, 0) + 0.25
lon = 0.5*round(longitude*2, 0) + 0.25
lonlat = c(lon, lat)
lonlat <- as.data.frame(lonlat)
tada = match(lonlat, pvpstry)
return(tada)
}
Заранее спасибо!
Редактировать: ответить на комментарий:
> dput(pvpstry[1:50,])
structure(list(V1 = c(-179.75, -179.25, -178.75, -178.25, -177.75,
-177.25, -176.75, -176.25, -175.75, -175.25, -174.75, -174.25,
-173.75, -173.25, -172.75, -172.25, -171.75, -171.25, -170.75,
-170.25, -169.75, -169.25, -168.75, -168.25, -167.75, -167.25,
-166.75, -166.25, -165.75, -165.25, -164.75, -164.25, -163.75,
-163.25, -162.75, -162.25, -161.75, -161.25, -160.75, -160.25,
-159.75, -159.25, -158.75, -158.25, -157.75, -157.25, -156.75,
-156.25, -155.75, -155.25), V2 = c(-89.75, -89.75, -89.75, -89.75,
-89.75, -89.75, -89.75, -89.75, -89.75, -89.75, -89.75, -89.75,
-89.75, -89.75, -89.75, -89.75, -89.75, -89.75, -89.75, -89.75,
-89.75, -89.75, -89.75, -89.75, -89.75, -89.75, -89.75, -89.75,
-89.75, -89.75, -89.75, -89.75, -89.75, -89.75, -89.75, -89.75,
-89.75, -89.75, -89.75, -89.75, -89.75, -89.75, -89.75, -89.75,
-89.75, -89.75, -89.75, -89.75, -89.75, -89.75)), row.names = c(NA,
50L), class = "data.frame")
>