R/ua_council.R

Defines functions council_to_ua ua_to_council

Documented in council_to_ua ua_to_council

#' UA to council
#'
#' Find council name for each UA code
#'
#' @param ua_code UA code for a Scottish local authority
#'
#' @return Council name
#' @export
#'
#' @examples
#' ua_to_council(230)
ua_to_council <- function(ua_code) {

  # Sort out inputs -----------------------------------------------------------
  ua_code <- as.numeric(ua_code)

  # Return council name or NA if not a valid UA code --------------------------
  dplyr::case_when(ua_code == 100 ~ "Aberdeen City",
                   ua_code == 110 ~ "Aberdeenshire",
                   ua_code == 120 ~ "Angus",
                   ua_code == 130 ~ "Argyll and Bute",
                   ua_code == 230 ~ "City of Edinburgh",
                   ua_code == 150 ~ "Clackmannanshire",
                   ua_code == 170 ~ "Dumfries and Galloway",
                   ua_code == 180 ~ "Dundee City",
                   ua_code == 190 ~ "East Ayrshire",
                   ua_code == 200 ~ "East Dunbartonshire",
                   ua_code == 210 ~ "East Lothian",
                   ua_code == 220 ~ "East Renfrewshire",
                   ua_code == 240 ~ "Falkirk",
                   ua_code == 250 ~ "Fife",
                   ua_code == 260 ~ "Glasgow City",
                   ua_code == 270 ~ "Highland",
                   ua_code == 280 ~ "Inverclyde",
                   ua_code == 290 ~ "Midlothian",
                   ua_code == 300 ~ "Moray",
                   ua_code == 235 ~ "Na h-Eileanan Siar",
                   ua_code == 310 ~ "North Ayrshire",
                   ua_code == 320 ~ "North Lanarkshire",
                   ua_code == 330 ~ "Orkney Islands",
                   ua_code == 340 ~ "Perth and Kinross",
                   ua_code == 350 ~ "Renfrewshire",
                   ua_code == 355 ~ "Scottish Borders",
                   ua_code == 360 ~ "Shetland Islands",
                   ua_code == 370 ~ "South Ayrshire",
                   ua_code == 380 ~ "South Lanarkshire",
                   ua_code == 390 ~ "Stirling",
                   ua_code == 395 ~ "West Dunbartonshire",
                   ua_code == 400 ~ "West Lothian",
                   ua_code == 999 ~ "Scotland")
}


#' Council to UA
#'
#' Find UA code for a Scottish local authority.
#'
#' Accepts most common forms of names, including unofficial forms.
#'
#' @param council Council name
#'
#' @return UA code
#' @export
#'
#' @examples
#' council_to_ua("Aberdeen")
#'
council_to_ua <- function(council) {

  # Sort out inputs -----------------------------------------------------------
  council <- stringr::str_to_lower(council) %>%
    stringr::str_replace_all(" ", "")

  # Search for keyword matched in council names and return UA numbers ---------
  dplyr::case_when(
    stringr::str_detect(council, "aberdeen")    &
      !stringr::str_detect(council, "shire")    ~ 100,
    stringr::str_detect(council, "aberdeen")    &
      stringr::str_detect(council, "shire")     ~ 110,
    stringr::str_detect(council, "angus")       ~ 120,
    stringr::str_detect(council, "argyll")      |
      stringr::str_detect(council, "bute")      ~ 130,
    stringr::str_detect(council, "edinburgh")   ~ 230,
    stringr::str_detect(council, "clackmannan") ~ 150,
    stringr::str_detect(council, "dumfries")    &
      stringr::str_detect(council, "galloway")  ~ 170,
    stringr::str_detect(council, "dundee")      ~ 180,
    stringr::str_detect(council, "ayr")         &
      stringr::str_detect(council, "east")      ~ 190,
    stringr::str_detect(council, "dunbarton")   &
      stringr::str_detect(council, "east")      ~ 200,
    stringr::str_detect(council, "lothian")     &
      stringr::str_detect(council, "east")      ~ 210,
    stringr::str_detect(council, "renfrew")     &
      stringr::str_detect(council, "east")      ~ 220,
    stringr::str_detect(council, "falkirk")     ~ 240,
    stringr::str_detect(council, "fife")        ~ 250,
    stringr::str_detect(council, "glasgow")     ~ 260,
    stringr::str_detect(council, "highland")    ~ 270,
    stringr::str_detect(council, "inverclyde")  ~ 280,
    stringr::str_detect(council, "lothian")     &
      stringr::str_detect(council, "mid")       ~ 290,
    stringr::str_detect(council, "moray")       ~ 300,
    stringr::str_detect(council, "eilean")      ~ 235,
    stringr::str_detect(council, "ayr")         &
      stringr::str_detect(council, "north")     ~ 310,
    stringr::str_detect(council, "lanark")      &
      stringr::str_detect(council, "north")     ~ 320,
    stringr::str_detect(council, "orkney")      ~ 330,
    stringr::str_detect(council, "perth")       &
      stringr::str_detect(council, "kinross")   ~ 340,
    stringr::str_detect(council, "renfrew")     &
      !stringr::str_detect(council, "east")     ~ 350,
    stringr::str_detect(council, "borders")     ~ 355,
    stringr::str_detect(council, "shetland")    ~ 360,
    stringr::str_detect(council, "ayr")         &
      stringr::str_detect(council, "south")     ~ 370,
    stringr::str_detect(council, "lanark")      &
      stringr::str_detect(council, "south")     ~ 380,
    stringr::str_detect(council, "stirling")    ~ 390,
    stringr::str_detect(council, "dunbarton")   &
      stringr::str_detect(council, "west")      ~ 395,
    stringr::str_detect(council, "lothian")     &
      stringr::str_detect(council, "west")      ~ 400)
}
n-fanton/ndr documentation built on Dec. 21, 2021, 11:07 p.m.