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. -- Sent from my phone. Please excuse my brevity. On June 17, 2016 1:06:29 PM PDT, "ch.elahe via R-help" <r-help at r-project.org> wrote:>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 > >______________________________________________ >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide >http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code.[[alternative HTML version deleted]]
> On Jun 17, 2016, at 1:06 PM, ch.elahe via R-help <r-help at r-project.org> wrote: > > 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!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. -- David Winsemius Alameda, CA, USA
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 -- Don MacQueen Lawrence Livermore National Laboratory 7000 East Ave., L-627 Livermore, CA 94550 925-423-1062 On 6/17/16, 1:06 PM, "R-help on behalf of ch.elahe via R-help" <r-help-bounces at r-project.org on behalf of r-help at r-project.org> wrote:>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 > >______________________________________________ >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide >http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code.
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:> 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 > > -- > Don MacQueen > > Lawrence Livermore National Laboratory > 7000 East Ave., L-627 > Livermore, CA 94550 > 925-423-1062 > > > > > > On 6/17/16, 1:06 PM, "R-help on behalf of ch.elahe via R-help" > <r-help-bounces at r-project.org on behalf of r-help at r-project.org> wrote: > >>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 >> >>______________________________________________ >>R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>https://stat.ethz.ch/mailman/listinfo/r-help >>PLEASE do read the posting guide >>http://www.R-project.org/posting-guide.html >>and provide commented, minimal, self-contained, reproducible code. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.