I have the following data at 0.5 degree by 0.5 degree. temp <- dput(head(ptsDF,10)) structure(list(longitude = c(-68.25, -67.75, -67.25, -68.25, -67.75, -67.25, -71.25, -70.75, -69.25, -68.75), latitude = c(-54.75, -54.75, -54.75, -54.25, -54.25, -54.25, -53.75, -53.75, -53.75, -53.75), GDP = c(1.683046, 0.3212307, 0.0486207, 0.1223268, 0.0171909, 0.0062104, 0.22379, 0.1406729, 0.0030038, 0.0057422)), .Names c("longitude", "latitude", "GDP"), row.names = c(4L, 17L, 30L, 43L, 56L, 69L, 82L, 95L, 108L, 121L), class = "data.frame") I would like add the corresponding country names to each of the coordinates. This is what I have done: library(data.table) library(rgdal) library(reshape2) library(dplyr) library(tidyr) library(lubridate) library(maps) library(countrycode) library(ggplot2) library(raster) coord_cells <-temp [,c(1,2)] pts_cells <- SpatialPoints(coord_cells,proj4string=CRS(proj4string(worldmap))) indices_cells <- over(pts_cells, worldmap,na.rm=TRUE) foo_cells<-indices_cells[,c(3,5)] # Keep ISO3 and country names only new_data <- cbind(foo_cells, temp) However, I get a large number of NAs for coordinates which should have corresponding countries. What am I doing wrong? Any suggestions? Thank you. Sincerely, Milu [[alternative HTML version deleted]]