ãã®æçš¿ã§ã¯ããã³ããŒã¯ã®å°åã®äººå£çµ±èšããŒã¿ã埩å
ããæ¹æ³ã«ã€ããŠèª¬æããŸãã2007幎ã®é åæ§é ã®æ¹é©åŸãããŒã¿ã®å
¬åŒãªèª¿åã¯ãããŸããã§ããã ããã¯ã ç§ã®phdãããžã§ã¯ãã®äžç°ãšããŠå®è¡ããEurostatããŒã¿ã®èª¿åã®ã»ãã®äžéšã§ãã ãã®æçš¿ã¯ãæåã«è±èªã®ããã°ãšDemotrendsããã°ã§å
¬éãããŸãã ã 人å£çµ±èšåŠè
ã ãã§ãªãè峿·±ããã®ã«ãªããšæããŸãã
NUTSãšã¯ïŒ
NUTSã¯ã çµ±èšã®é ååäœã®åœåæ³ã衚ããŸãã ããã¯ã欧å·é£åã®åœã§æ¡çšãããŠããè¡æ¿åºååºåã®æšæºåãããã·ã¹ãã ã§ãã ãã®åé¡ã®æŽå²ã¯1970幎代ã«ããã®ãŒãããšãŒãããã®ããŸããŸãªåœã®å°åãæ¯èŒã§ããããã«ããããã®ã¢ã€ãã¢ãçãŸããŸããã å€ããå°ãªããå®å
šã«åºã䜿çšãããŠãã圢åŒã§ã¯ãã·ã¹ãã ã¯äžçŽã®å€ããç®ã«ã®ã¿çŸããŸããã NUTSã«ã¯3ã€ã®äž»èŠãªã¬ãã«ãããïŒå³1ãåç
§ïŒãå°ååæã§ã¯NUTS-2ãæãäžè¬çã§ãã

å³1.ç°ãªãéå±€ã¬ãã«ã®NUTSé åãåºå¥ããåçã®å³
NUTSã®äž»ãªç®çã¯ãç°ãªãéå±€ã¬ãã«ã®å°åãåºå¥ããããã®æ¯èŒå¯èœãªåºæºãäœæããããšã§ããã ããã«ããããããã2013幎ã®NUTS-2ã¬ãã«ã¬ã®ã³ã®äººå£ã¯28.5å人ã§ããã ïŒãã£ã³ã©ã³ãã®ãªãŒã©ã³ãå³¶ ïŒãã1200äžäººè¿ããŸã§ïŒ ã€ã«ããã©ã³ã¹ ããã©ã³ã¹-ããªãšãã®åšèŸºïŒã
äºææ§ã®ãªãããŒã¿ã·ãªãŒãº
æ¬è³ªçã«éåžžã«æ¡ä»¶ä»ãã§ããããè¡æ¿ãšé åã®åºåã¯å€ãããªããŸãŸã§ã¯ãªããçµ¶ããå€åããŠããã é åã·ã¹ãã ã®å€æŽã¯ãå°åã¬ãã«ã§ã®ããã»ã¹ã®é·æåæã«å€§ããªå°é£ããããããŸããå€ãå°åãšæ°ããå°åã®ãããã³ã°ã¯éªšã®æããäœæ¥ã§ãããåžžã«æç¢ºã«è§£æ±ºãããäœæ¥ã§ã¯ãªãããã§ãïŒèå³ãããå Žåã¯ãç§ã®å€ãäœåã§ãã·ã¢ã®å°åãèŠãããšãã§ããŸã-ä»é²1ãš2ïŒã ããããå°åçµ±èšã®æãããªå°é£ã«ãããããããåœå¢ã¯ããŸããŸãªã¬ãã«ã®å·ã®ç®¡çè
ã®èŠä»¶ã«åŸã£ãŠçµ¶ããå€åããŠããŸãã Eurostat 㯠ãNUTSå°åã§çºçãããã¹ãŠã®å€æŽãèšé²ãã詳现ãªèª¬æãå
¬éããŸãïŒå³2ïŒã

å³2.ããŒãžã§ã³2006ãš2010ã®éã®NUTSã·ã¹ãã ã®å€æŽ
ããã«ããããããããŠãŒãã¹ã¿ããã¯ãçŸä»£ã®é ååºåãæŽå²ççµ±èšã«ãããã³ã°ããããã«åžžã«åèšç®ããããã§ã¯ãããŸããã å®éã«ã¯ãããã¯ãææ°ããŒãžã§ã³ã®NUTSã§ã¯ãé åã®å¢çã倿Žãããå Žåã«ãããŒã¿ã«ããªãã®æ°ã®çç¥ãå«ãŸããããšãæå³ããŸãã ãããã£ãŠãç ç©¶è
ã¯ãååã«é·ãæéã調æ»ããããã«ãèªåã§ããŒã¿ã調åãããå¿
èŠããããŸãã ãã¡ãããããŒã¿å埩ããã»ã¹ã«ã¯ãéå»ã«ååšããããšã®ãªãå°åã®çµ±èšææšãè©äŸ¡ã§ããããã«ãæã«ã¯ç²éãªä»®å®ãè±å¯ã«ãããŸãã
ããã«ãEurostatãNUTSã®çŸåšã®ããŒãžã§ã³ã®ããŒã¿ã®ã¿ãå
¬éããŠãããšããäºå®ã«ãã£ãŠäœæ¥ãè€éã«ãªã£ãŠããŸãïŒå°ãªããšããã¢ãŒã«ã€ããããããŒã¿ã»ãããããŠã³ããŒãããå ŽæãèŠã€ããããŸããã§ããã ç§ã¯å士課çšãããžã§ã¯ãã®äžç°ãšããŠãNUTS-2ã¬ãã«ã§å°ååæã宿œããŠããŸãã æé·ã®èŠ³æž¬æéã確ä¿ããããã«ãããŒã¿ã®èª¿åã«é¢ããäž»èŠãªäœæ¥ãè¡ã£ã2015幎ã«ã2010幎çã®NUTSãéžæããŸãããNUTS㯠ãå
¬åŒã®å°å人å£çµ±èšEUROPOP2013ã®åºç€ãšãªããŸãã ã çµæãåçŸããããã«ã2015幎ã«ããŠã³ããŒããã人å£ãšæ»äº¡ã® 幎霢æ§é ã«é¢ããNUTSã¬ãã«ã®ãœãŒã¹ããŒã¿ã®ã³ããŒãfigshareã«æçš¿ããŸãã ã
ãã³ããŒã¯
äžéšã®åœã§ã¯ãNUTSåºæºã«æºæ ããããã«ãè¡æ¿åºåã®å€§èŠæš¡ãªæ¹é©ãè¡ããªããã°ãªããŸããã§ããã æãéèŠãªå€åã¯ã2007幎ã«ãã³ããŒã¯ã§åæã«çºçã ã271ã®å€ãåžçºæã98ã®æ°ããåžçºæã«å€ãããŸããïŒ æ¹é©ã«é¢ããç§åŠèšäºãåç
§ïŒã åãæ¹é©ã«ããããã³ããŒã¯ã«NUTSãå°å
¥ãããŸããã98ã®æ°ããèªæ²»äœã11ã®NUTS-3ãªãŒãžã§ã³ã«å䜵ããããã«5ã€ã®NUTS-2ãªãŒãžã§ã³ã«å䜵ããŸããã NUTS-1ã¬ãã«ã¯éç«ã£ãŠããŸãããããã¯ãã³ããŒã¯ã®ãããªå°ããªåœã«å
žåçã§ãã
ç§ã®ç¥ãéãã2007幎ãŸã§å
¬åŒã¬ãã«ã§ãã³ããŒã¯ã®NUTSå°åã®ããŒã¿ã埩å
ãã詊ã¿ã¯è¡ãããŠããŸããã 2007幎ãŸã§ã®æéã«ãŠãŒãã¹ã¿ããã«ãã£ãŠå
¬éããããšãŒãããå°åã®å
žåçãªå°å³ã¯æ¬¡ã®ããã«ãªããŸãïŒå³3ïŒ-ãã³ããŒã¯å°åã®ãããŒã¿ãªããã

å³3. 2006幎ã®ãšãŒãããã®NUTS-2å°åã®å¹³å寿åœã Eurostat ã€ã³ã¿ã©ã¯ãã£ãããŒã¿æ¢çŽ¢ããŒã«ã®ã¹ã¯ãªãŒã³ã·ã§ãã
ãã®ããŒã¿ã®æ¬ åŠã¯ããã³ããŒã¯ã®ãããªå€ãã®ç¹ã§çºå±ããåœã«ãšã£ãŠéåžžã«é©ãã¹ãããšã§ãã æ°æ§ã®åžåºçºæåºåã·ã¹ãã ãçµã¿åãããã®ã¯éåžžã«å°é£ã§ãããNUTSã®éåžžã«é«ãéå±€ã¬ãã«ã§åžçºæã®ããŒã¿ãéçŽããããšã¯ããã»ã©é£ãããããŸããã ãããŠãããã¯ãŸãã«ç§ããã£ãããšã§ããããã®æçš¿ã§ç€ºããããã®ã§ãã ç§ã¯ä»ã®èª°ããç§ã®åã«ããããã£ããã©ãããèŠã€ããããã«å€ãã®åªåãè²»ãããŸãã-é©ããããšã«ãç§ã¯ãããªãã¯ãã¡ã€ã³ã§äœãèŠã€ããŸããã§ããã
æ¬è³ªçã«ã¯ãå€ãåžçºæïŒ271ïŒãææ°ã®NUTS-3å°åïŒ11ïŒã«é¢é£ä»ããNUTS-3ã¬ãã«ã§ããŒã¿ãåçŽã«éçŽããããšãã¿ã¹ã¯ã§ãã æ¬¡ã«ãNUTS-3ã¯NUTS-2ã«èŠçŽ çã«éçŽãããŸãã ãã®ãããªã¿ã¹ã¯ã¯ãç¹ã«åžçºæã®é
åçãªãã³ããŒã¯ã®ååã«ç
©ãããããã¹ãŠã®åã³ãèæ
®ãããšãé·ãå€ãèŠããå¯èœæ§ããããŸãã ãããã幞ããªããšã«ãç§ãã¡ã¯GISæä»£ã«äœãã§ããŸãã GISã䜿çšããŠãå€ãèªæ²»äœãNUTS-3å°åã«ã»ãŒèªåçã«ãããã³ã°ããŸããã ããã«ãããã»ã¹å
šäœãã³ãŒãRã§æ®µéçã«ç€ºãããŠããŸãã
ããŒã¿
ãã³ããŒã¯ã®å€ã271åžçºæã®å¹Žéœ¢æ§æã«é¢ããããŒã¿ã¯ã Statistics Denmarkã®å
¬åŒãŠã§ããµã€ãããååŸãããŠããŸãã ã·ã¹ãã ã§ã¯ãæªç»é²ãŠãŒã¶ãŒã®å Žåã¯10Kãšã³ããªãç»é²åŸã®å Žåã¯100Kãšã³ããªã®ã¿ãäžåºŠã«ããŠã³ããŒãã§ããŸãã ããŒã¿ã®è©³çްãèãããšãããŒã¿ãã¢ããããŒãããããã»ã¹ã¯éåžžã«éå±ãªä»äºã§ãã ãããã£ãŠãç§ã®ç ç©¶ã®ã¿ã¹ã¯ã®ããã«ã2001幎ãã2006幎ã®ããŒã¿ãããŠã³ããŒãããŸããã å¿
èŠã«å¿ããŠã詳现ãªåžçºæããŒã¿ã1979幎以æ¥å©çšå¯èœã§ãã ç§ã2015幎ã«ããŠã³ããŒãããããŒã¿ãšäœ¿çšåã«ãã©ãŒãããããããããã¯ãã¡ãã§ãã
ãã³ããŒã¯ã®å€ãåžçºæã®å¢çã®ç©ºéããŒã¿ãå«ããã¡ã€ã«ãæ€çŽ¢ããã«ã¯ãããªãã®æéãããããŸããã 1幎ååŸã«ãã®è³ªåã«æ»ããšãã·ã§ãŒããã¡ã€ã«ã®å
ã®ãœãŒã¹ãèŠã€ããããšãã§ããŸããã§ããã ããããç§ã¯ãããããããããŠã³ããŒããããšç¢ºä¿¡ããŠããŸã ã 仿¥ãèšç»ãããäœæ¥ã®ããã«ããŒã¿ãå©çšã§ããªããšãã蚪åéç¥ããããŸãã ããã§äœ¿çšãããã·ã§ãŒããã¡ã€ã«ã®ã³ããŒã
æåŸã«ãèšç»ãæåè£ã«å®æœããã«ã¯ãNUTS-3å°åã®åœå¢ãå¿
èŠã§ãã ããã§ã¯ãã¹ãŠãç°¡åã§ã-ããŒã¿ã¯Eurostat Webãµã€ãïŒ Eurostat geodata repository ïŒã§å
¥æã§ããŸã ã 䜿çšããã¢ãŒã«ã€ãã·ã§ãŒããã¡ã€ã«ã¯ããNUTS_2010_20M_SH.zipããšåŒã°ããŸãã 11ã®ãã³ããŒã¯å°åã®éžæãããã«ãããŸã ã
äž¡æ¹ã®ã·ã§ãŒããã¡ã€ã«ã«äœ¿çšãããå°ççæåœ±æ³ã¯ESPG-3044ã§ãããããã¯ãã³ããŒã¯ã®æšæºã§ãã
æåŸã«ãã»ãã·ã§ã³ãæºåããŠããŒã¿ãããŠã³ããŒãããRã³ãŒãïŒã³ãŒãã«é¢ããã³ã¡ã³ãã¯ç¿»èš³ããŸããïŒã
# set locale and encoding parameters to read Danish if(Sys.info()['sysname']=="Linux"){ Sys.setlocale("LC_CTYPE", "da_DK.utf8") danish_ecnoding <- "WINDOWS-1252" }else if(Sys.info()['sysname']=="Windows"){ Sys.setlocale("LC_CTYPE", "danish") danish_ecnoding <- "Danish_Denmark.1252" } # load required packages (install first if needed) library(tidyverse) # version: 1.0.0 library(ggthemes) # version: 3.3.0 library(rgdal) # version: 1.2-4 library(rgeos) # version: 0.3-21 library(RColorBrewer) # version: 1.1-2 mypal <- brewer.pal(11, "BrBG") library(fuzzyjoin) # version: 0.1.2 library(viridis) # version: 0.3.4 # load Denmark pop structures for the old municipalities df <- read_csv("https://ikashnitsky.imtqy.com/doc/misc/nuts2-denmark/BEF1A.csv.gz") # create a directory for geodata ifelse(!dir.exists("geodata"), dir.create("geodata"), "Directory already exists") # download, unzip and read Danish NUTS-3 geodata (31KB) url_nuts <- "https://ikashnitsky.imtqy.com/doc/misc/nuts2-denmark/denmark-nuts3-espg3044.tgz" path_nuts <- "geodata/denmark-nuts3-espg3044.tgz" ifelse(!file.exists(path_nuts), download.file(url_nuts, path_nuts, mode="wb"), 'file alredy exists') # If there are problems downloading the data automatically, please download it manually from # https://ikashnitsky.imtqy.com/doc/misc/nuts2-denmark/denmark-nuts3-espg3044.tgz untar(tarfile = path_nuts, exdir = "geodata") sp_nuts3 <- readOGR(dsn = "geodata/.", layer = "denmark-nuts3-espg3044") gd_nuts3 <- fortify(sp_nuts3, region = "NUTS_ID") # to the ggplot format # download, unzip and read Danish old municipal geodata (6.0MB) url_mun <- "https://ikashnitsky.imtqy.com/doc/misc/nuts2-denmark/kommune2006win1252.tgz" path_mun <- "geodata/kommune2006win1252.tgz" ifelse(!file.exists(path_mun), download.file(url_mun, path_mun, mode="wb"), 'file alredy exists') # If there are problems downloading the data automatically, please download it manually from # https://ikashnitsky.imtqy.com/doc/misc/nuts2-denmark/kommune2006utf8.tgz untar(tarfile = path_mun, exdir = "geodata") sp_mun <- readOGR(dsn = "geodata/.", layer = "kommune2006win1252", encoding = danish_ecnoding) gd_mun <- fortify(sp_mun) # coordinates of the municipalities mun_coord <- bind_cols(as.data.frame(coordinates(sp_mun)), sp_mun@data[,1:3]) %>% transmute(long = V1, lat = V2, enhedid, objectid, name = navn)
空éãããã³ã°
æåã«å°å³ãèŠãŠã¿ãŸãããã
ggplot()+ geom_polygon(data = gd_nuts3, aes(long, lat, group = group), color = brbg[3], fill = "grey90", size = 1)+ geom_point(data = mun_coord, aes(long, lat), color = brbg[10], size = 1)+ theme_map()

å³4.ãã³ããŒã¯ã®æ§èªæ²»äœãšNUTS-3å°å
åžçºæã®å¢çïŒæ°Žè²ïŒã¯ãNUTS-3å°åã®å¢çïŒæ°Žè²ïŒãããã¯ããã«è©³çްã§ããããšãããããŸãã ããã¯ãåžçºæã®éå¿ãNUTS-3ã®åå°åå
ã«åãŸãéãé£ãããããŸããã ããã¯ãææ±ç¹ãé€ããã¹ãŠã®éå¿ã«åœãŠã¯ãŸããŸãã éãgooglezhã¯ããããã¯ãªã¹ãã£ã³ãœãäžäžã®èŠå¡ãšè±ããªæŽå²ãæã€å°ããªå³¶ã§ããããšãæããŠãããŸãã ãã®èªæ²»äœã¯ç¹å¥ãªå°äœã«ãããNUTSã·ã¹ãã ã«ã¯å«ãŸããŠããŸãã ã ããã«æäœããå Žåã¯ã飿¥ããããŒã³ãã«ã å³¶ã«å®å
šã«ã貌ãä»ãããããšãã§ããŸãã
ã©ã®éå¿ãNUTSã®ã©ã®é åã«è©²åœãããã調ã¹ãããã«ãã©ã€ãã©ãªsp
ã®ç©ºéäº€å·®ïŒ over
ïŒã®é¢æ°ã䜿çšããŸããã ããã§ç§ã¯ã ããžã£ãŒã»ããŽã¡ã³ãã«æè¬ãããã
# municipality coordinates to Spatial mun_centr <- SpatialPoints(coordinates(sp_mun), proj4string = CRS(proj4string(sp_nuts3))) # spatial intersection with sp::over inter <- bind_cols(mun_coord, over(mun_centr, sp_nuts3[,"NUTS_ID"])) %>% transmute(long, lat, objectid, nuts3 = as.character(NUTS_ID), nuts2 = substr(nuts3, 1, 4))
空éãããã³ã°ãæ©èœãããã©ããã確èªããŸãã
ggplot()+ geom_polygon(data = gd_mun, aes(long, lat, group = group), color = brbg[9], fill = "grey90", size = .1)+ geom_polygon(data = gd_nuts3, aes(long, lat, group = group), color = brbg[3], fill = NA, size = 1)+ geom_point(data = inter, aes(long, lat, color = nuts3), size = 1)+ geom_point(data = inter[is.na(inter$nuts3),], aes(long, lat), color = "red", size = 7, pch = 1)+ theme_map(base_size = 15)+ theme(legend.position = c(1, 1), legend.justification = c(1, 1))

å³5.å€ãåžçºæãšãã³ããŒã¯ã®NUTS-3å°åéã®ç©ºéç亀差ç¹ã®ç¢ºèª
æªããªãã ãããããNAãã®ã«ããŽãªã«åé¡ãããèªæ²»äœãããã€ããããŸããã€ãŸããNUTSã¬ãã«ã§äžèŽãããã®ãèŠã€ãããŸããã§ããã ãã®ãããªã±ãŒã¹ã¯ããã€ãããŸããïŒ
# how many failed cases do we have sum(is.na(inter$nuts3))
## [1] 3
# where the intersection failed inter[is.na(inter$nuts3),]
## long lat objectid nuts3 nuts2 ## 23 892474.0 6147918 46399 <NA> <NA> ## 65 504188.4 6269329 105319 <NA> <NA> ## 195 533446.8 6312770 47071 <NA> <NA>
ããã3ãç§ã¯ããããæåã§ä¿®æ£ããããšã«ããŸããã
# fix the three cases manually fixed <- inter fixed[fixed$objectid=="46399", 4:5] <- c("DK014", "DK01") fixed[fixed$objectid=="105319", 4:5] <- c("DK041", "DK04") fixed[fixed$objectid=="47071", 4:5] <- c("DK050", "DK05")
æçµçãªèŠèŠçãã§ãã¯ã
ggplot()+ geom_polygon(data = gd_mun, aes(long, lat, group = group), color = brbg[9], fill = "grey90", size = .1)+ geom_polygon(data = gd_nuts3, aes(long, lat, group = group), color = brbg[3], fill = NA, size = 1)+ geom_point(data = fixed, aes(long, lat, color = nuts3), size = 1)+ theme_map(base_size = 15)+ theme(legend.position = c(1, 1), legend.justification = c(1, 1))

å³6. 3ã€ã®èªæ²»äœã®æå調æŽåŸã®ç©ºéãããã³ã°ã®å確èª
ä»ã§ã¯ãã¹ãŠãæ£åžžã§ãã
空éããŒã¿ãšçµ±èšããŒã¿ãçµã¿åãããŸãïŒãã¡ãžãŒçµåïŒ
次ã®ã¿ã¹ã¯ã¯ã空éããŒã¿ãšçµ±èšããŒã¿ã®ç°¡åãªäžèŽã§ã¯ãããŸããã§ããã ç§ãèŠã€ããå°æ¹èªæ²»äœã®ã·ã§ãŒããã¡ã€ã«ã«ã¯ããã³ããŒã¯çµ±èšå±ã䜿çšããèå¥ã³ãŒããå«ãŸããŠããŸããã§ããã ãã®ããããã³ããŒã¯ã®ååãšè¥¿ãšãŒãããã®ã³ãŒãã£ã³ã°ã®ãã¹ãŠã®åã³ãšãšãã«ãåžçºæãååã§ç©ºéããŒã¿ã»ãããšçµ±èšããŒã¿ã»ããã«ãããã³ã°ããå¿
èŠããããŸããã 2ã€ã®ããŒã¿ã»ããã§ã¯ãåžçºæã®ååã®ç¶Žããå°ãç°ãªããŸãã ãããŠãæ°çŸã®èªæ²»äœããããŸãã ããã¯ããªãéå±ãªã«ãŒãã³ã®ããã§ãã ãã£ãïŒ 'Fuzzy String Matching'ã¯ãçŽ æŽãããéçºè
David Robinsonã«ãã£ãŠæžãããfuzzyjoin
ã©ã€ãã©ãªãŒã§ã®æå©ãšãã®åªããå®è£
ã§ãã
ãŸããåžçºæåã®ããŒã¿ãåçŽåããŠããã¡ããäž¡æ¹ã®ããŒã¿ã»ããã§å°æåã«å€æããŸããã ããã«ããããã³ã°ã®æåã®è©Šã¿ã§ã¯ãæåãÃ¥ãã代æ¿ã®ã¹ãã«ãaaãã«çœ®ãæããããšãçã«ããªã£ãŠããããšã瀺ãããŸããã 空éããŒã¿ã»ããã§ã¯ãåèªæ²»äœã®ååãããKommuneããšããåèªãåé€ããŸããã å€ãèªæ²»äœã®ååãšã³ãŒããå«ããã³ããŒã¯çµ±èšå±ããå°ããªããŒã¿ã»ãããããŠã³ããŒãããŸãã ã
# simplify municipalities names mun_geo <- mun_coord %>% transmute(name = sub(x = name, " Kommune", replacement = ""), objectid) %>% mutate(name = gsub(x = tolower(name), "Ã¥", "aa")) mun_stat <- read.csv2("https://ikashnitsky.imtqy.com/doc/misc/nuts2-denmark/stat-codes-names.csv", fileEncoding = danish_ecnoding) %>% select(name) %>% separate(name, into = c("code", "name"), sep = " ", extra = "merge") %>% mutate(name = gsub("\\s*\\([^\\)]+\\)", "", x = name)) %>% mutate(name = gsub(x = tolower(name), "Ã¥", "aa"))
ãã¡ãžãŒçµåã詊è¡ããŠããŸãã
# first attempt fuz_joined_1 <- regex_left_join(mun_geo, mun_stat, by = "name")
åºåã¯ã271è¡ã§ã¯ãªã278è¡ã®ããŒã¿ãã¬ãŒã ã§ããããã¯ã空éããŒã¿ã»ããã®äžéšã®èªæ²»äœã§ã¯ãçµ±èšããŒã¿ã»ããã«è€æ°ã®äžèŽãèŠã€ãã£ãããšãæå³ããŸãã ãããã®åé¡ã®ããã±ãŒã¹ãèŠã€ããŸãã
# identify more that 1 match (7 cases) and select which to drop fuz_joined_1 %>% group_by(objectid) %>% mutate(n = n()) %>% filter(n > 1)
## Source: local data frame [14 x 5] ## Groups: objectid [7] ## ## name.x objectid code name.yn ## <chr> <dbl> <chr> <chr> <int> ## 1 haslev 105112 313 haslev 2 ## 2 haslev 105112 403 hasle 2 ## 3 brÞnderslev 47003 739 rÞnde 2 ## 4 brÞnderslev 47003 805 brÞnderslev 2 ## 5 hirtshals 47037 817 hals 2 ## 6 hirtshals 47037 819 hirtshals 2 ## 7 rÞnnede 46378 385 rÞnnede 2 ## 8 rÞnnede 46378 407 rÞnne 2 ## 9 hvidebÊk 46268 317 hvidebÊk 2 ## 10 hvidebÊk 46268 681 videbÊk 2 ## 11 ryslinge 46463 477 ryslinge 2 ## 12 ryslinge 46463 737 ry 2 ## 13 aarslev 46494 497 aarslev 2 ## 14 aarslev 46494 861 aars 2
ãã®ããã7ã€ã®åžçºæã«ã€ããŠã2ã€ã®äžèŽãèŠã€ãããŸããã ãã¡ãžãŒçµåã®æ¬¡ã®å埩ã§ã¯ãçæ³çã§ã¯ãªãäžèŽãç Žæ£ããŸãã
å¥ã®åé¡ã¯ãäžéšã®èªæ²»äœã§ã¯ãŸã£ããäžèŽããªãã£ãããšã§ãã
# show the non-matched cases fuz_joined_1 %>% filter(is.na(code))
## name.x objectid code name.y ## 1 faxe 105120 <NA> <NA> ## 2 nykÞbing falsters 46349 <NA> <NA> ## 3 herstederne 46101 <NA> <NA>
ãã®ãããªã±ãŒã¹ã¯3ã€ãããªãã£ããããçµ±èšããŒã¿ã»ããã®ååã«å¯Ÿå¿ããããã«ã空éããŒã¿ã»ããã§ããããæåã§ä¿®æ£ããŸããã 2ã€ã®ã±ãŒã¹ã§ã¯ãã¹ãã«ã®äžæ£ç¢ºããåå ã§ççŸãçºçããå¥ã®ã±ãŒã¹ã§ã¯ãèªæ²»äœã®ååã倿ŽãããŸãã ã
# correct the 3 non-matching geo names mun_geo_cor <- mun_geo mun_geo_cor[mun_geo_cor$name=="faxe", "name"] <- "fakse" mun_geo_cor[mun_geo_cor$name=="nykÞbing falsters", "name"] <- "nykÞbing f." mun_geo_cor[mun_geo_cor$name=="herstederne", "name"] <- "albertslund"
次ã«ã2åç®ã®ãããã³ã°ã詊ã¿ãŸãïŒç©ºéããŒã¿ã»ããã®ååã調æŽãããŸãïŒã
# second attempt fuz_joined_2 <- regex_left_join(mun_geo_cor, mun_stat, by = "name") # drop non-perfect match fuz_joined_2 <- fuz_joined_2 %>% group_by(objectid) %>% mutate(n = n()) %>% ungroup() %>% filter(n < 2 | name.x==name.y) fuz_joined_2 <- fuz_joined_2 %>% transmute(name = name.x, objectid, code)
ããŒãã§ã¯ãã æåŸã®ã¹ãããã¯ãNUTSãªãŒãžã§ã³ããobjectidããã£ãŒã«ãã§åžçºæã®å€ãçµ±èšã³ãŒãã«æ·»ä»ããããšã§ãã
# finally, attach the NUTS info to matched table key <- left_join(fuz_joined_2, fixed, "objectid")
NUTSã¬ãã«ã§ã®å°æ¹èªæ²»äœããŒã¿ã®éçŽ
ãããŸã§ã®æäœã«ãããå€ãèªæ²»äœã®çµ±èšã³ãŒããšææ°ã®NUTSå°åãäžèŽããããå°ãããªãããéåžžã«è²ŽéãªããŒã¿ãã¬ãŒã ãæäŸãããŸããã æ®ã£ãŠããã®ã¯ãå€ãããŒã¿ãéçŽããããšã ãã§ãã ãããŠããããŒãããŒã¿ã»ãããçµ±èšã«æ·»ä»ããNUTS-3ããã³NUTS-2ã¬ãã«ã§éèšããŸãã
# finally, we only need to aggregate the old stat data df_agr <- left_join(key, df, "code") %>% filter(!is.na(name)) %>% gather("year", "value", y2001:y2006) df_nuts3 <- df_agr %>% group_by(year, sex, age, nuts3) %>% summarise(value = sum(value)) %>% ungroup() df_nuts2 <- df_agr %>% group_by(year, sex, age, nuts2) %>% summarise(value = sum(value)) %>% ungroup()
2001幎ã«ãã³ããŒã¯ã®NUTS-3å°åã®åŽå幎霢人å£ïŒ15ã64æ³ïŒã®å²åãèšç®ãããã®æ
å ±ãå°å³ã«è¡šç€ºããŠã¿ãŸãããã
# total population in 2001 by NUTS-3 regions tot_01 <- df_nuts3 %>% filter(year=="y2001") %>% group_by(nuts3) %>% summarise(tot = sum(value, na.rm = TRUE)) %>% ungroup() # working-age population in 2001 by NUTS-3 regions working_01 <- df_nuts3 %>% filter(year=="y2001", age %in% paste0("a0", 15:64)) %>% group_by(nuts3) %>% summarise(work = sum(value, na.rm = TRUE)) %>% ungroup() # calculate the shares of working age population sw_01 <- left_join(working_01, tot_01, "nuts3") %>% mutate(sw = work / tot * 100)
# map the shares of working age population in 2001 by NUTS-3 regions ggplot()+ geom_polygon(data = gd_nuts3 %>% left_join(sw_01, c("id" = "nuts3")), aes(long, lat, group = group, fill = sw), color = "grey50", size = 1) + scale_fill_viridis()+ theme_map(base_size = 15)+ theme(legend.position = c(1, 1), legend.justification = c(1, 1))

å³7. 2001幎ã®ãã³ããŒã¯ã®NUTS-3å°åã«ãããåŽå幎霢人å£ïŒ15-64ïŒã®å²å
çµæã¯çŸå®çã«èŠããŸã-æ°å€ã¯å€§éœåžåãšæ¯èŒç倧éœåžãããå°åã§é«ããªã£ãŠããŸãã