Skip to content

merging df with world map

5 messages · Elahe chalabi, Jeff Newmiller, David Winsemius +2 more

#
Hi all,
I want to use world map in ggplot2 and show my data on world map. my df is:


    $ COUNTRY           : chr  "DE" "DE" "FR" "FR" ..

    $ ContrastColor     : int  9 9 9 9 13 9 9 9 9 ..

    $ quant             : Factor w/ 4 levels "FAST","SLOW",..I need to merge my df with world_map data which is like this:

    
    world_map=map_data("world")
    data.frame':   99338 obs. of  6 variables:
    $ long     : num  -69.9 -69.9 -69.9 -70 -70.1 ...
    $ lat      : num  12.5 12.4 12.4 12.5 12.5 ...
    $ group    : num  1 1 1 1 1 1 1 1 1 1 ...
    $ order    : int  1 2 3 4 5 6 7 8 9 10 ...
    $ region   : chr  "Aruba" "Aruba" "Aruba" "Aruba" ...
    $ subregion: chr  NA NA NA NA ...
but by merging my df with world map data I get a data frame with zero observation in it,I use this command for merging:


    world_map=merge(world_map,df,by.x="region",by.y="COUNTRY")
    str(world_map) 

    'data.frame':   0 obs. of  133 variables:
    $ region            : chr 
    $ long              : num 
    $ lat               : num 
    $ group             : num 
    $ order             : int 
    $ subregion         : chr
does anyone know what is the problem of this merging that I am currently using?
thanks for any help!
Elahe
#
You should look at your own data before you post. The information in COUNTRY is not the same as the information in region.

Also, dput is better than str for posting questions.
#
I would not expect a merger based on the one hand on two letter initials to match on the other hand fully spelled-out country names.
#
And you can check what David and Jeff suggested like this:

intersect( df$COUNTRY, world_map$region )

If they have any values in common, that command will show them. (Note that
I said values in common, not countries in common.)

WARNING:
It appears that you have each country appearing more than once in both of
the data frames. Even if the country names were spelled the same (which
they are not in the first few rows), I would not care to predict the
outcome of a many-to-many merge. It probably won't make sense for showing
the data on a map.

-Don
2 days later
#
you also don't need to do a merger if you use a base `geom_map()`
layer with the polygons and another using the fill (or points, lines,
etc).
On Fri, Jun 17, 2016 at 5:08 PM, MacQueen, Don <macqueen1 at llnl.gov> wrote: