Merging two ggplots into one (Choropleth)?

Hi,
I need your help with this little challenge.
I can create a map of Germany with scores plotted for some of the areas:

install.packages("rnaturalearthhires", repos = "http://packages.ropensci.org", type = "source")
install.packages(rnaturalearth)

library(tidyverse)
library(rnaturalearth)
library(readxl)

area.scores <- data.frame(
  stringsAsFactors = FALSE,
            NAME_2 = c("Aachen","Aalen-Essingen",
                       "Achim","Ahlen","Ahrensburg","Albstadt","Alsfeld",
                       "Amberg","Ammerbuch -Entringen","Andernach","Ansbach",
                       "Auerbach","Aurich","Bad Dürkheim","Bad Feilnbach",
                       "Bad Kreuznach","Bad Neustadt","Bad Oeynhausen",
                       "Bad Salzungen","Bad Soden-Salmünster","Bad Vilbel",
                       "Bad Wünnenberg","Bad Zwischenahn","Baesweiler","Balingen",
                       "Bamberg","Beckum","Bergen","Bergfelde","Bergisch Gladbach",
                       "Bergisch Gladbach-Bensberg","Berglern","Berlin -Britz",
                       "Berlin-Biesdorf","Berlin-Hohenschönhausen",
                       "Berlin-Oberschöneweide","Berlin-Spandau","Bernau","Bielefeld",
                       "Bietigheim-Bissingen","Birkenfeld",
                       "Bitterfeld-Wolfen","Böblingen","Bocholt","Bochum-Wattenscheid","Bonn",
                       "Bösel","Bottrop","Brandenburg","Braunschweig",
                       "Bremen","Bremerhaven","Brühl","Buchholz","Bünde",
                       "Burghausen","Bürstadt","Castrop-Rauxel","Chemnitz",
                       "Chemnitz -Röhrsdorf","Coesfeld","Contwig",
                       "Cottbus -Groß Gaglow","Crailsheim","Crimmitschau","Dallgow",
                       "Dänischenhagen","Darmstadt","Datteln","Deggendorf","Delitzsch",
                       "Delmenhorst","Dessau -Roßlau","Dillenburg",
                       "Dingolfing","Dinslaken","Dippoldiswalde","Donauwörth",
                       "Dörfles-Esbach","Dorsten -Wulfen","Dörth","Dortmund",
                       "Dreieich -Sprendlingen","Duisburg","Durach","Düren",
                       "Durmersheim","Düsseldorf","Eckernförde","Eilenburg",
                       "Einbeck","Eisenach","Elmshorn","Emmendingen -Kollmarsreute",
                       "Emsdetten","Eppstein-Bremthal","Erfurt","Erkner",
                       "Erlangen","Eschwege","Eschweiler","Essen","Eutin",
                       "Frankfurt (Main)","Frankfurt (Oder)","Frankfurt am Main",
                       "Fraureuth","Freiburg","Freyburg","Friedberg",
                       "Fürth","Garbsen","Gardelegen","Garmisch-Partenkirchen",
                       "Geisenheim","Geislingen","Gelsenkirchen","Gelting",
                       "Geretsried","Gernsheim","Gießen","Gifhorn","Göppingen",
                       "Goslar","Göttingen","Greifswald","Grevenbroich",
                       "Grünstadt","Gummersbach","Gunzenhausen","Güstrow",
                       "Hagen","Hagenow","Halberstadt","Haldensleben","Halle",
                       "Halle (Saale)","Haltern","Hamburg",
                       "Hamburg -Stellingen","Hamburg -Wandsbek","Hamburg-Bergedorf","Hamm",
                       "Hannover","Hattingen","Heide","Heidelberg","Heiden",
                       "Heidenheim (Brenz)","Heinsberg","Heinsberg -Schafhausen",
                       "Hellenthal","Henstedt-Ulzburg","Hermannsburg",
                       "Herne","Herold","Herrenberg","Heuchelheim","Hof",
                       "Homburg (Saar)","Höxter","Hoyerswerda","Husum","Hutthurm",
                       "Ibbenbüren","Idar-Oberstein","Idstein","Iserlohn",
                       "Jork -Königreich","Jüchen","Jülich","Jüterbog",
                       "Kaiserslautern","Kamen","Karlsruhe","Kassel","Kempen",
                       "Kerpen","Kippenheim","Kirchhain","Koblenz","Köln",
                       "Köngen","Königslutter","Köthen","Krefeld","Kronach",
                       "Kronshagen / Kiel","Kyritz","Laatzen","Lachendorf",
                       "Landshut -Altdorf","Laubach","Lebach","Leer (Ostfriesland)",
                       "Leipzig","Leipzig -Rückmarsdorf","Leonberg", "Leverkusen","Liebenburg",
                       "Limburg -Offheim","Löbau-Großdehsa","Lübeck","Lüchow",
                       "Lüdenscheid","Lüdinghausen","Ludwigsburg","Lüneburg",
                       "Lüssow -Langendorf / Stralsund","Magdeburg","Mainz", "Mainz -Kastel","Mainz-Kastel",
                       "Mandelbachtal-Ommersheim","Mannheim","Marburg","Markkleeberg","Marl","Marne",
                       "Mayen","Meckenbeuren -Liebenau","Melle","Merzig",
                       "Messingen","Michelfeld","Michelstadt","Minden",
                       "Moers","Mönchengladbach","Mülheim","Müllheim","München",
                       "Murnau","Neubrandenburg","Neumarkt (Oberpfalz)",
                       "Neumünster","Neuruppin","Neuss","Neustadt (Orla)",
                       "Neuwied","Nienburg (Weser)","Oberhausen",
                       "Obersulm -Willsbach","Oer-Erkenschwick","Offenbach","Oldenburg",
                       "Oppenheim","Oschatz","Overath","Paderborn","Papenburg",
                       "Pasewalk","Petersberg","Pfaffenhofen (Ilm)","Pfedelbach",
                       "Pirmasens","Pirna","Plauen","Pocking","Potsdam",
                       "Prenzlau","Prüm","Quedlinburg","Radebeul",
                       "Ravensburg -Weststadt","Recklinghausen","Remscheid",
                       "Rheda-Wiedenbrück","Rheine","Riesa","Römerberg","Rosenfeld",
                       "Rostock","Roth","Rottach-Egern OT Weißach","Rottweil",
                       "Ruhmannsfelden","Saalfeld","Saarbrücken","Salzgitter",
                       "Sangerhausen","Schenefeld","Schleswig",
                       "Schmalkalden -Mittelstille","Schongau","Schortens","Schwabhausen",
                       "Schwäbisch Gmünd -Bettringen","Schwedt (Oder)",
                       "Schweinfurt","Schwelm","Selm -Bork","Siegen","Sinsheim",
                       "Soest","Sömmerda","Sonthofen","Sottrum","Speyer",
                       "St. Ingbert","Stade -Wiepenkathen","Stadthagen",
                       "Stemwede -Dielingen","Stendal","Stockelsdorf","Straubing",
                       "Strausberg","Stuttgart","Süderlügum","Suhl","Sundern",
                       "Teltow","Templin","Tessin","Thalheim (Erzgebirge)",
                       "Torgau","Trierweiler","Tuttlingen","Ulm","Varel",
                       "Vellmar","Viersen -Dülken","Wadern -Wadrill",
                       "Wangen im Allgäu","Warendorf","Weimar","Weißenburg",
                       "Weißenfels","Wenden -Altenhof","Wermelskirchen",
                       "Wermsdorf -Luppa","Wernigerode","Werther","Wesel","Westerholt",
                       "Wetzlar","Wielenbach","Wirges","Wismar","Wissen",
                       "Wittenberg","Wittlich","Wittstock","Witzenhausen",
                       "Wöfersheim-Berstadt","Wolfenbüttel","Wolfsburg","Wuppertal",
                       "Xanten","Zeesen","Zeitz","Zittau -Pethau","Total"),
             Value = c(93.3,84.5,87.1,91.3,95.7,  86.7,87.7,84.8,86,88.4,86.7,89.4,90,87.7,91.1,
                       86.7,90,93.3,93.1,87,85.5,89.9,96.3,84,91.7,84.1,
                       94.7,88.5,90.3,81.8,86.9,83.3,83.6,85.7,82.9,
                       86.9,67.5,85.9,93.6,84.2,86.3,93.8,89.3,94,81.9,
                       87.9,100,87.6,91.6,88.3,88.1,92,96.7,82.8,83,
                       92.5,92.3,83,92.5,92,85.7,90.5,92.5,83.1,90.4,66.7,
                       91.1,93.3,80.4,81.3,100,94.5,93.4,91.5,90,81.2,
                       93.8,100,86.7,86.6,60,87,82.9,90,82.2,89.7,90,
                       92.6,80,89.6,91.9,85,90,90,90.9,90.7,100,87.1,
                       95.8,81.9,92.5,89.7,85,60,90,100,100,93.2,
                       89.1,72,87.6,85.3,93.6,89.6,95,90,90,90,90,91.1,
                       85,90,88.1,90.9,87.4,93.6,95,84.1,91.4,90,91.2,
                       90.3,85,89.4,94.6,92.8,86,95,88.8,86,88.3,90,
                       87.5,83.6,87,93.9,89.4,90.3,82.2,96.7,93.6,100,
                       94.5,93,84.7,90,88.3,91.3,88,90.3,81.9,100,84,
                       87.4,91.4,100,87.8,98.3,89.2,90,95,83,95,93.3,
                       81.9,80,96.7,89.6,87.8,90.2,78.5,89.8,84.8,92.5,
                       86.7,86.3,83.3,92.1,85.5,82.8,79,80,84.1,87.6,
                       88.8,87.7,86,90.4, 83.5,92.7,88.6,91.4,86,90,
                       100,96.2,86,91.2,85,85.8,82.5,82.3,84,80,90,
                       87.7,83.3,90.8,94.3,87.1,87.8,97.5,88.5,100,89.6,
                       85.9,78.6,97.7,85.2,84,87,85,89.4,86.5,91.6,86,
                       87.1,87.5,100,90.1,81.3,89.3,90.4,85.9,80,88.2,
                       89.3,83.3,92.5,90.7,89.5,96,89.7,86,84.8,83.5,
                       89.8,86,91.2,84.4,86,87.5,92.7,94.2,87.9,80.1,
                       86.4,91.4,84.4,91.7,86.4,92.7,88,87.5,91.8,86.8,
                       92.5,76.7,86.9,95.5,98.2,91.6,91,92,91.4,87.1,
                       100,94.4,90,87.9,95,94.3,94.5,89.1,82.7,84.1,
                       92.3,86.7,79.7,85,84,91.4,95.3,90,88.3,80,90,
                       91.1,90,64.3,91.2,85.7,88.8,100,89.7,73.3,86.1,
                       90.7,88.8,91.1,86,88,94.6,82.4,87.8,90,91.7,90,
                       89.3,82.2,90,84,88,89,88.5,91.7,89.4,87.9,86.3,
                       83.8,92,82,93.3,88.1,88.1,86.5,90,60,86.7,91,90, 95.3,87.9)
)

These are key areas so other, not scored areas are uncolored on my plot:

library(rgeos)
germany <- ne_states(country = "germany", returnclass = "sf") %>%
  select(name)

url_areas <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_DEU_3_sf.rds"

scored_areas <- readRDS(url(url_areas)) %>% 
  filter(NAME_2 %in% area.scores$NAME_2) %>% 
  full_join(area.scores)

ggplot() +
  geom_sf(data = germany, alpha = 0.3) +
  geom_sf(data = scored_areas, aes(fill = Value)) +
  scale_fill_gradient(low = "red", high = "green") +
  labs(title = "Value Score by area",
       fill = "Scores") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, size = 20),
        axis.title = element_blank(),
        plot.background = element_blank(),
        legend.position = c(0.95, 0.20),
        plot.margin = margin(5, 0, 5, 0))

I can also take whole regions into account:

region.scores <- data.frame(
  stringsAsFactors = FALSE,
       check.names = FALSE,
            NAME_1 = c("Baden-Württemberg","Bayern",
                       "Berlin","Brandenburg","Bremen","Hamburg","Hessen",
                       "Mecklenburg-Vorpommern","Niedersachsen",
                       "Nordrhein-Westfalen","Rheinland-Pfalz","Saarland","Sachsen",
                       "Sachsen-Anhalt","Schleswig-Holstein","Thüringen","Total"),
             Value = c(86.6874660879002,
                       82.3455216,85.4518781,88.35817,94.2103,
                       86.1654135338346,88.24749999,89.689999,
                       88.4498956158664,87.8950791242143,87.189596,
                       88.338198251,89.0658,91.2355955248,
                       90.03660836,89.74905817,88.15668314),
                 N = c(3686,3651,1182,1329,156,
                       266,4000,608,3832,9226,2512,686,2227,1562,1366,
                       797,37086)
)

url_regions <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_DEU_3_sf.rds"

scored_regions <- readRDS(url(url_regions)) %>% 
  filter(NAME_1 %in% region.scores$NAME_1) %>% 
  full_join(region.scores)

ggplot() +
  geom_sf(data = germany, alpha = 0.3) +
  geom_sf(data = scored_regions, aes(fill = Value)) +
  scale_fill_gradient(low = "red", high = "green") +
  labs(title = "Value Score by region",
       fill = "Scores") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, size = 20),
        axis.title = element_blank(),
        plot.background = element_blank(),
        legend.position = c(0.95, 0.20),
        plot.margin = margin(5, 0, 5, 0))

Now.
I would like to combine the two ggplots above to show all available areas and then fulfill blank areas by scores for regions.

Is this possible?

Also, I am planning to use the same logic for Great Britain having UK postcodes.
Which source of maps would be best for this solution?
I believe this part of the code would be completely different:

library(rgeos)
germany <- ne_states(country = "germany", returnclass = "sf") %>%
  select(name)

url_areas <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_DEU_3_sf.rds"

scored_areas <- readRDS(url(url_areas)) %>% 
  filter(NAME_2 %in% area.scores$NAME_2) %>% 
  full_join(area.scores)

for these area.scores and region.scores data frames:

area.scores <- data.frame(
  stringsAsFactors = FALSE,
     PostcodeShort = c("Total","NE66","GL7","SO40",
                       "NE65","BS16","PE31","IP11","WA5","GU34","TQ7",
                       "BN23","LE13","BT19","HD9","SY8","BD22","LS10",
                       "OX29","BH25","BA14","CM23","BD20","NP44","PE36","PO30",
                       "BD13","BT23","BD16","LS26","BN27","BN22","MK41",
                       "CA14","WA9","LU7","BD17","CF31","LS25","NP18",
                       "WA7","LS15","AB42","SN4","SN5","YO12","NE61","BN14",
                       "BT20","CO10","SN3","WA10","IP5","BN13","BH23",
                       "WF9","IP4","HD4","IP14","PO38","BD18","LE15",
                       "OX28","PO33","HD7","NP4","LS16","SA10","WA11","WA4",
                       "WF3","WN5","CA28","EX2","HG4","NP20","TQ12","WA2",
                       "WA3","BN20","BN21","HD8","LE14","PR8","SN12",
                       "SO16","CV22","EX8","LN6","PO36","SY7"),
             Value = c(231.2,265.8,226.4,212.9,
                       234.9,305.9,224,232.9,209,229.5,243.5,216.3,216.4,
                       211.1,226.1,219.9,253.3,207.9,286.9,240.4,216.8,
                       206.5,253.8,198.6,224.6,232.6,250.5,181.4,233.3,
                       198.3,219.9,241.3,203.8,242.9,171.8,249.5,222.2,
                       207.3,212.8,186.2,201.2,209.6,167.8,283.7,265.1,174.8,
                       228.7,238.7,227.1,229.1,272.3,180,263.4,216.3,
                       262.4,201.8,243,251.2,215.2,282.2,226.4,217.8,
                       263.3,234.2,262.3,188.6,236.8,203.6,177.5,208.8,242.1,
                       193,214.1,192.6,236,204.1,187.7,237.9,199.9,
                       240.8,263.3,293.6,235.7,171.8,227.3,217.2,230.6,
                       186.5,240.3,249.8,230.5),
                 N = c(31931,178,157,135,125,119,
                       116,113,113,110,106,105,101,99,96,96,95,89,
                       89,85,83,82,81,80,80,80,76,76,75,74,72,71,71,
                       70,70,69,68,68,68,68,68,67,65,65,65,65,63,
                       62,62,62,62,62,61,60,59,59,58,57,57,56,55,
                       55,55,55,54,54,53,53,53,53,53,53,52,52,52,
                       52,52,52,52,51,51,51,51,51,51,51,50,50,50,50,
                       50)
)
region.scores <- data.frame(
  stringsAsFactors = FALSE,
          District = c("Aberdeen","Bath",
                       "Birmingham","Blackburn","Blackpool","Bolton","Bournemouth",
                       "Bradford","Brighton","Bristol","Bromley","Cambridge",
                       "Canterbury","Cardiff","Carlisle","Chelmsford",
                       "Chester","Cleveland","Colchester","Coventry","Crewe",
                       "Croydon","Darlington","Dartford","Derby","Doncaster",
                       "Dorchester","Dudley","Dumfries","Dundee","Durham",
                       "Edinburgh","Enfield","Exeter","Falkirk and Stirling",
                       "Galashiels","Glasgow","Gloucester","Guernsey",
                       "Guilford","Halifax","Harrogate","Harrow","Hemel Hempstead",
                       "Hereford","Huddersfield","Hull","Ilford","Inverness",
                       "Ipswich","Isle of Man","Jersey","Kilmarnock",
                       "Kingston upon Thames","Kirkcaldy","Kirkwall","Lancaster",
                       "Leeds","Leicester","Lerwick","Lincoln","Liverpool",
                       "Llandrindod Wells","Llandudno","London E","London EC",
                       "London N","London NW","London SE","London SW",
                       "London W","London WC","Luton","Manchester","Medway",
                       "Milton Keynes","Motherwell","Newcastle","Newport",
                       "Northampton","Northern Ireland","Northumberland","Norwich",
                       "Nottingham","Oldham","Outer Hebrides","Oxford",
                       "Paisley","Perth","Peterborough","Plymouth","Portsmouth",
                       "Preston","Reading","Redhill","Romford","Salisbury",
                       "Sheffield","Shrewsbury","Slough","Southall",
                       "Southampton","Southend on Sea","St. Albans","Stevenage",
                       "Stockport","Stoke on Trent","Sunderland","Sutton",
                       "Swansea","Swindon","Taunton","Telford","Tonbridge",
                       "Torquay","Truro","Twickenham","Wakefield","Walsall",
                       "Warrington","Watford","Wigan","Wolverhampton",
                       "Worcester","York"),
             Value = c(265.8,226.4,212.9,234.9,
                       305.9,224,232.9,209,229.5,243.5,216.3,216.4,216.3,
                       216.4,216.3,216.4,211.1,226.1,219.9,253.3,216.3,
                       216.3,216.4,211.1,226.1,219.9,253.3,207.9,286.9,224,
                       232.9,209,229.5,243.5,216.3,216.4,216.3,216.4,
                       224,232.9,209,229.5,243.5,216.3,216.4,216.3,216.4,
                       224,232.9,209,229.5,243.5,216.3,216.4,216.3,
                       216.4,224,232.9,209,229.5,243.5,216.3,216.4,216.3,
                       216.4,224,232.9,209,229.5,243.5,216.3,216.4,216.3,
                       216.4,224,232.9,209,229.5,243.5,216.3,216.4,216.3,
                       216.4,224,232.9,209,229.5,243.5,216.3,216.4,
                       216.3,216.4,224,232.9,209,229.5,243.5,216.3,216.4,
                       216.3,216.4,224,232.9,209,229.5,243.5,216.3,216.4,
                       216.3,216.4,224,232.9,209,229.5,243.5,216.3,
                       216.4,216.3,216.4,224,232.9,209,229.5,243.5,216.3),
                 N = c(178,157,135,125,119,1220,
                       252,254,365,106,105,5221,3254,101,105,101,99,
                       96,96,95,105,105,101,99,96,96,95,89,89,1220,
                       252,254,365,106,105,5221,3254,101,1220,252,254,
                       365,106,105,5221,3254,101,1220,252,254,365,106,
                       105,5221,3254,101,1220,252,254,365,106,105,
                       5221,3254,101,1220,252,254,365,106,105,5221,3254,
                       101,1220,252,254,365,106,105,5221,3254,101,1220,
                       252,254,365,106,105,5221,3254,101,1220,252,
                       254,365,106,105,5221,3254,101,1220,252,254,365,
                       106,105,5221,3254,101,1220,252,254,365,106,105,
                       5221,3254,101,1220,252,254,365,106,105)
)

Ignoring the fact that most of the area names in your sample data do not match the corresponding area names in the map (very likely because the division level is not actually the one you are specifying), you can do something like this to get the result you are describing.

library(tidyverse)
library(sf)
#> Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1

region.scores <- data.frame(
    stringsAsFactors = FALSE,
    check.names = FALSE,
    NAME_1 = c("Baden-Württemberg","Bayern",
               "Berlin","Brandenburg","Bremen","Hamburg","Hessen",
               "Mecklenburg-Vorpommern","Niedersachsen",
               "Nordrhein-Westfalen","Rheinland-Pfalz","Saarland","Sachsen",
               "Sachsen-Anhalt","Schleswig-Holstein","Thüringen","Total"),
    Value = c(86.6874660879002,
              82.3455216,85.4518781,88.35817,94.2103,
              86.1654135338346,88.24749999,89.689999,
              88.4498956158664,87.8950791242143,87.189596,
              88.338198251,89.0658,91.2355955248,
              90.03660836,89.74905817,88.15668314),
    N = c(3686,3651,1182,1329,156,
          266,4000,608,3832,9226,2512,686,2227,1562,1366,
          797,37086)
)

area.scores <- data.frame(
    stringsAsFactors = FALSE,
    NAME_2 = c("Aachen","Aalen-Essingen",
               "Achim","Ahlen","Ahrensburg","Albstadt","Alsfeld",
               "Amberg","Ammerbuch -Entringen","Andernach","Ansbach",
               "Auerbach","Aurich","Bad Dürkheim","Bad Feilnbach",
               "Bad Kreuznach","Bad Neustadt","Bad Oeynhausen",
               "Bad Salzungen","Bad Soden-Salmünster","Bad Vilbel",
               "Bad Wünnenberg","Bad Zwischenahn","Baesweiler","Balingen",
               "Bamberg","Beckum","Bergen","Bergfelde","Bergisch Gladbach",
               "Bergisch Gladbach-Bensberg","Berglern","Berlin -Britz",
               "Berlin-Biesdorf","Berlin-Hohenschönhausen",
               "Berlin-Oberschöneweide","Berlin-Spandau","Bernau","Bielefeld",
               "Bietigheim-Bissingen","Birkenfeld",
               "Bitterfeld-Wolfen","Böblingen","Bocholt","Bochum-Wattenscheid","Bonn",
               "Bösel","Bottrop","Brandenburg","Braunschweig",
               "Bremen","Bremerhaven","Brühl","Buchholz","Bünde",
               "Burghausen","Bürstadt","Castrop-Rauxel","Chemnitz",
               "Chemnitz -Röhrsdorf","Coesfeld","Contwig",
               "Cottbus -Groß Gaglow","Crailsheim","Crimmitschau","Dallgow",
               "Dänischenhagen","Darmstadt","Datteln","Deggendorf","Delitzsch",
               "Delmenhorst","Dessau -Roßlau","Dillenburg",
               "Dingolfing","Dinslaken","Dippoldiswalde","Donauwörth",
               "Dörfles-Esbach","Dorsten -Wulfen","Dörth","Dortmund",
               "Dreieich -Sprendlingen","Duisburg","Durach","Düren",
               "Durmersheim","Düsseldorf","Eckernförde","Eilenburg",
               "Einbeck","Eisenach","Elmshorn","Emmendingen -Kollmarsreute",
               "Emsdetten","Eppstein-Bremthal","Erfurt","Erkner",
               "Erlangen","Eschwege","Eschweiler","Essen","Eutin",
               "Frankfurt (Main)","Frankfurt (Oder)","Frankfurt am Main",
               "Fraureuth","Freiburg","Freyburg","Friedberg",
               "Fürth","Garbsen","Gardelegen","Garmisch-Partenkirchen",
               "Geisenheim","Geislingen","Gelsenkirchen","Gelting",
               "Geretsried","Gernsheim","Gießen","Gifhorn","Göppingen",
               "Goslar","Göttingen","Greifswald","Grevenbroich",
               "Grünstadt","Gummersbach","Gunzenhausen","Güstrow",
               "Hagen","Hagenow","Halberstadt","Haldensleben","Halle",
               "Halle (Saale)","Haltern","Hamburg",
               "Hamburg -Stellingen","Hamburg -Wandsbek","Hamburg-Bergedorf","Hamm",
               "Hannover","Hattingen","Heide","Heidelberg","Heiden",
               "Heidenheim (Brenz)","Heinsberg","Heinsberg -Schafhausen",
               "Hellenthal","Henstedt-Ulzburg","Hermannsburg",
               "Herne","Herold","Herrenberg","Heuchelheim","Hof",
               "Homburg (Saar)","Höxter","Hoyerswerda","Husum","Hutthurm",
               "Ibbenbüren","Idar-Oberstein","Idstein","Iserlohn",
               "Jork -Königreich","Jüchen","Jülich","Jüterbog",
               "Kaiserslautern","Kamen","Karlsruhe","Kassel","Kempen",
               "Kerpen","Kippenheim","Kirchhain","Koblenz","Köln",
               "Köngen","Königslutter","Köthen","Krefeld","Kronach",
               "Kronshagen / Kiel","Kyritz","Laatzen","Lachendorf",
               "Landshut -Altdorf","Laubach","Lebach","Leer (Ostfriesland)",
               "Leipzig","Leipzig -Rückmarsdorf","Leonberg", "Leverkusen","Liebenburg",
               "Limburg -Offheim","Löbau-Großdehsa","Lübeck","Lüchow",
               "Lüdenscheid","Lüdinghausen","Ludwigsburg","Lüneburg",
               "Lüssow -Langendorf / Stralsund","Magdeburg","Mainz", "Mainz -Kastel","Mainz-Kastel",
               "Mandelbachtal-Ommersheim","Mannheim","Marburg","Markkleeberg","Marl","Marne",
               "Mayen","Meckenbeuren -Liebenau","Melle","Merzig",
               "Messingen","Michelfeld","Michelstadt","Minden",
               "Moers","Mönchengladbach","Mülheim","Müllheim","München",
               "Murnau","Neubrandenburg","Neumarkt (Oberpfalz)",
               "Neumünster","Neuruppin","Neuss","Neustadt (Orla)",
               "Neuwied","Nienburg (Weser)","Oberhausen",
               "Obersulm -Willsbach","Oer-Erkenschwick","Offenbach","Oldenburg",
               "Oppenheim","Oschatz","Overath","Paderborn","Papenburg",
               "Pasewalk","Petersberg","Pfaffenhofen (Ilm)","Pfedelbach",
               "Pirmasens","Pirna","Plauen","Pocking","Potsdam",
               "Prenzlau","Prüm","Quedlinburg","Radebeul",
               "Ravensburg -Weststadt","Recklinghausen","Remscheid",
               "Rheda-Wiedenbrück","Rheine","Riesa","Römerberg","Rosenfeld",
               "Rostock","Roth","Rottach-Egern OT Weißach","Rottweil",
               "Ruhmannsfelden","Saalfeld","Saarbrücken","Salzgitter",
               "Sangerhausen","Schenefeld","Schleswig",
               "Schmalkalden -Mittelstille","Schongau","Schortens","Schwabhausen",
               "Schwäbisch Gmünd -Bettringen","Schwedt (Oder)",
               "Schweinfurt","Schwelm","Selm -Bork","Siegen","Sinsheim",
               "Soest","Sömmerda","Sonthofen","Sottrum","Speyer",
               "St. Ingbert","Stade -Wiepenkathen","Stadthagen",
               "Stemwede -Dielingen","Stendal","Stockelsdorf","Straubing",
               "Strausberg","Stuttgart","Süderlügum","Suhl","Sundern",
               "Teltow","Templin","Tessin","Thalheim (Erzgebirge)",
               "Torgau","Trierweiler","Tuttlingen","Ulm","Varel",
               "Vellmar","Viersen -Dülken","Wadern -Wadrill",
               "Wangen im Allgäu","Warendorf","Weimar","Weißenburg",
               "Weißenfels","Wenden -Altenhof","Wermelskirchen",
               "Wermsdorf -Luppa","Wernigerode","Werther","Wesel","Westerholt",
               "Wetzlar","Wielenbach","Wirges","Wismar","Wissen",
               "Wittenberg","Wittlich","Wittstock","Witzenhausen",
               "Wöfersheim-Berstadt","Wolfenbüttel","Wolfsburg","Wuppertal",
               "Xanten","Zeesen","Zeitz","Zittau -Pethau","Total"),
    Value = c(93.3,84.5,87.1,91.3,95.7,  86.7,87.7,84.8,86,88.4,86.7,89.4,90,87.7,91.1,
              86.7,90,93.3,93.1,87,85.5,89.9,96.3,84,91.7,84.1,
              94.7,88.5,90.3,81.8,86.9,83.3,83.6,85.7,82.9,
              86.9,67.5,85.9,93.6,84.2,86.3,93.8,89.3,94,81.9,
              87.9,100,87.6,91.6,88.3,88.1,92,96.7,82.8,83,
              92.5,92.3,83,92.5,92,85.7,90.5,92.5,83.1,90.4,66.7,
              91.1,93.3,80.4,81.3,100,94.5,93.4,91.5,90,81.2,
              93.8,100,86.7,86.6,60,87,82.9,90,82.2,89.7,90,
              92.6,80,89.6,91.9,85,90,90,90.9,90.7,100,87.1,
              95.8,81.9,92.5,89.7,85,60,90,100,100,93.2,
              89.1,72,87.6,85.3,93.6,89.6,95,90,90,90,90,91.1,
              85,90,88.1,90.9,87.4,93.6,95,84.1,91.4,90,91.2,
              90.3,85,89.4,94.6,92.8,86,95,88.8,86,88.3,90,
              87.5,83.6,87,93.9,89.4,90.3,82.2,96.7,93.6,100,
              94.5,93,84.7,90,88.3,91.3,88,90.3,81.9,100,84,
              87.4,91.4,100,87.8,98.3,89.2,90,95,83,95,93.3,
              81.9,80,96.7,89.6,87.8,90.2,78.5,89.8,84.8,92.5,
              86.7,86.3,83.3,92.1,85.5,82.8,79,80,84.1,87.6,
              88.8,87.7,86,90.4, 83.5,92.7,88.6,91.4,86,90,
              100,96.2,86,91.2,85,85.8,82.5,82.3,84,80,90,
              87.7,83.3,90.8,94.3,87.1,87.8,97.5,88.5,100,89.6,
              85.9,78.6,97.7,85.2,84,87,85,89.4,86.5,91.6,86,
              87.1,87.5,100,90.1,81.3,89.3,90.4,85.9,80,88.2,
              89.3,83.3,92.5,90.7,89.5,96,89.7,86,84.8,83.5,
              89.8,86,91.2,84.4,86,87.5,92.7,94.2,87.9,80.1,
              86.4,91.4,84.4,91.7,86.4,92.7,88,87.5,91.8,86.8,
              92.5,76.7,86.9,95.5,98.2,91.6,91,92,91.4,87.1,
              100,94.4,90,87.9,95,94.3,94.5,89.1,82.7,84.1,
              92.3,86.7,79.7,85,84,91.4,95.3,90,88.3,80,90,
              91.1,90,64.3,91.2,85.7,88.8,100,89.7,73.3,86.1,
              90.7,88.8,91.1,86,88,94.6,82.4,87.8,90,91.7,90,
              89.3,82.2,90,84,88,89,88.5,91.7,89.4,87.9,86.3,
              83.8,92,82,93.3,88.1,88.1,86.5,90,60,86.7,91,90, 95.3,87.9)
)

url_regions <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_DEU_2_sf.rds"

scored_regions <- readRDS(url(url_regions)) 

# I'm only going to use matching areas to exemplify, you have to fix this issue for this to work properly
area.scores <- area.scores %>% 
    filter(NAME_2 %in% scored_regions$NAME_2)

scored_regions <- scored_regions %>% 
    full_join(region.scores) %>% 
    as_tibble() %>% 
    rows_update(area.scores, by = "NAME_2") %>% 
    st_as_sf()
#> Joining, by = "NAME_1"

scored_regions %>% 
    ggplot(aes(fill = Value)) +
    geom_sf() +
    scale_fill_gradient(low = "red", high = "green") +
    labs(title = "Value Score by region",
         fill = "Scores") +
    theme_minimal() +
    theme(plot.title = element_text(hjust = 0.5, size = 20),
          axis.title = element_blank(),
          plot.background = element_blank(),
          legend.position = c(0.95, 0.20),
          plot.margin = margin(5, 0, 5, 0))

Created on 2021-06-11 by the reprex package (v2.0.0)

Thank you very much. Perhaps the problem is with the rgeos/biogeo data as regions in the area.scores are taken from the German responses. I know the task resolved but is there any other source of maps in Europe different to the one I used in this exercise (UK, France and Germany in particular)?

I think this is unlikely, I mean it could be possible for a few cases but not for most of them, most likely your responses are referencing a different division level or maybe even more than one, common people answering a questionnaire might not be particularly concerned about administrative divisions hierarchy.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.