I realize there have already been many asked and answered questions about merging datasets here, but I've been unable to find one that addresses my issue.
What I'm trying to do is merge to datasets using two variables and keeping all data from each. I've tried merge and all of the join operations from dplyr, as well as cbind and have not gotten the result I want. Usually what happens is that one column from one of the datasets gets overwritten with NAs. Another thing that will happen, as when I do full_join in dplyr or all = TRUE in merge is that I get double the number of rows.
Here's my data:
  Primary_State       Primary_County     n
     <fctr>               <fctr> <int>
1            AK                         12
2            AK       Aleutians West     1
3            AK            Anchorage   961
4            AK               Bethel     1
5            AK Fairbanks North Star   124
6            AK               Haines     1
  Primary_County Primary_State Population
1       Autauga             AL      55416
2       Baldwin             AL     208563
3       Barbour             AL      25965
4          Bibb             AL      22643
5        Blount             AL      57704
6       Bullock             AL      10362
So I want to  merge or join based on Primary_State and Primary_County, which is necessary because there are a lot of duplicate county names in the U.S. and retain the data from both n and Population. From there I can then  divide the Population by n and get a per capita figure for each county. I just can't figure out how to do it and keep all of the data, so any help would be appreciated. Thanks in advance!  
EDIT: Adding code examples of what I've already described above.
This code (as well as left_join): 
countyPerCap <- merge(countyLicense, countyPops, all.x = TRUE)
Produces this:
  Primary_State       Primary_County   n Population
1            AK                       12         NA
2            AK       Aleutians West   1         NA
3            AK            Anchorage 961         NA
4            AK               Bethel   1         NA
5            AK Fairbanks North Star 124         NA
6            AK               Haines   1         NA
This code:
countyPerCap <- right_join(countyLicense, countyPops)
Produces this:
  Primary_State Primary_County     n Population
      <chr>          <chr> <int>      <int>
1            AL       Autauga     NA      55416
2            AL       Baldwin     NA     208563
3            AL       Barbour     NA      25965
4            AL          Bibb     NA      22643
5            AL        Blount     NA      57704
6            AL       Bullock     NA      10362
Hope that's helpful.
EDIT: This is what happens with the following code:
countyPerCap <- merge(countyLicense, countyPops, all = TRUE)
  Primary_State  Primary_County   n Population
1            AK                  12         NA
2            AK Aleutians East   NA       3296
3            AK  Aleutians West   1         NA
4            AK Aleutians West   NA       5647
5            AK       Anchorage 961         NA
6            AK      Anchorage   NA     298192
It duplicates state and county and then adds n to one record and Population in another. Is there a way to deduplicate the dataset and remove the NAs?
 
    