Aldri undervurder latskapens evne til å motivere deg! (Sitat: Christian Lura)

https://www.ssb.no/kommunefakta/

library(RCurl)
## Loading required package: bitops
library(XML)
library(rvest)
## Loading required package: xml2
## 
## Attaching package: 'rvest'
## The following object is masked from 'package:XML':
## 
##     xml
#Funksjon som fikser tusenskilletegn i tall
skilletegn <- function(x){
  ifelse(nchar(x) > 5, sub(" ", ".", x), sub (" ","", x))
}


url <- "https://www.ssb.no/kommunefakta/askoy"

kommune <- read_html(url)
tabeller <- read_html(url) %>% html_table()
  alder <- tabeller[1]
  folkevekst <- tabeller[2]
  utdanning <- tabeller[3]
  yrke <- tabeller[4]
  inntekt <- tabeller[5]
  driftsutgifter <- tabeller[6]
  
kommune.parse <- htmlParse(kommune)
navn <- as.character(lapply(kommune.parse['//li[@class="kommunenavn"]'],xmlValue))
navn <- unlist(strsplit(navn," - "))[1]
navn
## [1] "Askøy"
kommunetall <- lapply(kommune.parse['//p[@class="tall"]'],xmlValue)
kommunetall
## [[1]]
## [1] "29 535 innbyggere"
## 
## [[2]]
## [1] "318 personer [per 2018]"
## 
## [[3]]
## [1] "161 personer [per 2018]"
## 
## [[4]]
## [1] "47 personer [per 2018]"
## 
## [[5]]
## [1] "153 personer [per 2. kvartal 2019]"
## 
## [[6]]
## [1] "34 396 innbyggere [per 2030]"
## 
## [[7]]
## [1] "38 488 innbyggere [per 2040]"
## 
## [[8]]
## [1] "7 963"
## 
## [[9]]
## [1] "720"
## 
## [[10]]
## [1] "971 hytter [per 2019]"
## 
## [[11]]
## [1] "2,56 personer [per 2019]"
## 
## [[12]]
## [1] "1,9 prosent [per 2018]"
## 
## [[13]]
## [1] "7,5 prosent [per 2018]"
## 
## [[14]]
## [1] "93,6 % [per 2018]"
## 
## [[15]]
## [1] "3,4 % [per 2018]"
## 
## [[16]]
## [1] "52,6 % [per 2018]"
## 
## [[17]]
## [1] "29,4 % [per 2018]"
## 
## [[18]]
## [1] "1 397 kroner per innbygger"
## 
## [[19]]
## [1] "49 765 bøker [per 2018]"
## 
## [[20]]
## [1] "7,5 % [per 2018]"
## 
## [[21]]
## [1] "36,5 Besøk [per 2018]"
## 
## [[22]]
## [1] "65 foreninger [per 2018]"
## 
## [[23]]
## [1] "80 % [per 2018]"
## 
## [[24]]
## [1] "7,3 % [per 2018]"
## 
## [[25]]
## [1] "80 år"
## 
## [[26]]
## [1] "84,3 år"
## 
## [[27]]
## [1] "2,51 konsultasjoner  [per 2018]"
## 
## [[28]]
## [1] "8 per 10 000 innbygger [per 2018]"
## 
## [[29]]
## [1] "48,5 per 1000 innbygger [per 2018]"
## 
## [[30]]
## [1] "5,2 timer per uke [per 2018]"
## 
## [[31]]
## [1] "182 plasser [per 2018]"
## 
## [[32]]
## [1] "3 357 kroner [per 2018]"
## 
## [[33]]
## [1] "-0,3 %"
## 
## [[34]]
## [1] "93 835 kroner [per 2018]"
## 
## [[35]]
## [1] "76 707 kroner [per 2018]"
## 
## [[36]]
## [1] "75 006 kroner [per 2018]"
#Antall innbyggere
folketall <- sub("innbyggere", "", kommunetall[1])
  folketall
## [1] "29 535 "
  folketall <- skilletegn(folketall)
  folketall
## [1] "29.535 "
  folketall <- trimws(folketall)
  folketall
## [1] "29.535"
  #Fødte og døde
  fodte <- as.character(kommunetall[2])
  fodte
## [1] "318 personer [per 2018]"
  fodte.hittil.i.aar <- unlist(strsplit(fodte, "pers"))[1]
  fodte.hittil.i.aar <- skilletegn(fodte.hittil.i.aar)
  fodte.hittil.i.aar
## [1] "318"
  per <- unlist(strsplit(fodte, "\\["))[2]
  per <- sub("\\]", "", per)
  
  dode.hittil.i.aar <- as.character(kommunetall[3])
  dode.hittil.i.aar <- unlist(strsplit(dode.hittil.i.aar, "pers"))[1]
  dode.hittil.i.aar <- skilletegn(dode.hittil.i.aar)
  dode.hittil.i.aar
## [1] "161"
   #Innbyggere i 2040
  innb40 <- as.character(kommunetall[7])
  innb40 <- unlist(strsplit(innb40, "innb"))[1]
  innb40 <- trimws(innb40)
  innb40 <- skilletegn(innb40)
  innb40
## [1] "38.488"
  #Lånegjeld
  laan <- as.character(kommunetall[34])
  laan <- unlist(strsplit(laan, "kron"))[1]
  laan <- trimws(laan)
  laan <- skilletegn(laan)
  laan
## [1] "93.835"
  #Utskrift
  cat(paste0("Fakta om ", navn, "\n"))
## Fakta om Askøy
  cat(paste0(navn, " har ", folketall, " innbyggere.\n")) 
## Askøy har 29.535 innbyggere.
  cat(paste0("Så langt i år er det født ", fodte.hittil.i.aar, " barn i kommunen, mens ",
                      dode.hittil.i.aar, " mennesker døde.","\n"))
## Så langt i år er det født 318 barn i kommunen, mens 161 mennesker døde.
  cat(paste0("I ", navn, " vil det bo ", innb40, " mennesker innen 2040.", "\n"))
## I Askøy vil det bo 38.488 mennesker innen 2040.
  cat(paste0("Kommunens lånegjeld er ", laan, " kroner per innbygger.", "\n\n"))
## Kommunens lånegjeld er 93.835 kroner per innbygger.
  cat("Kilde: SSB")
## Kilde: SSB
#Funksjon som fikser tusenskilletegn i tall
skilletegn <- function(x){
  ifelse(nchar(x) > 5, sub(" ", ".", x), sub (" ","", x))
}

fakta <- function(x){
url <- paste0("http://www.ssb.no/kommunefakta/",x)
  kommune <- read_html(url)
tabeller <- read_html(url) %>% html_table()
  alder <- tabeller[1]
  folkevekst <- tabeller[2]
  utdanning <- tabeller[3]
  yrke <- tabeller[4]
  inntekt <- tabeller[5]
  driftsutgifter <- tabeller[6]
  
kommune.parse <- htmlParse(kommune)
navn <- as.character(lapply(kommune.parse['//li[@class="kommunenavn"]'],xmlValue))
navn <- unlist(strsplit(navn," - "))[1]

kommunetall <- lapply(kommune.parse['//p[@class="tall"]'],xmlValue)

#Antall innbyggere
folketall <- sub("innbyggere", "", kommunetall[1])
  folketall <- skilletegn(folketall)
  folketall <- trimws(folketall)
  
  #Fødte og døde
  fodte <- as.character(kommunetall[2])
  fodte.hittil.i.aar <- unlist(strsplit(fodte, "pers"))[1]
  fodte.hittil.i.aar <- skilletegn(fodte.hittil.i.aar)

  per <- unlist(strsplit(fodte, "\\["))[2]
  per <- sub("\\]", "", per)
  
  dode.hittil.i.aar <- as.character(kommunetall[3])
  dode.hittil.i.aar <- unlist(strsplit(dode.hittil.i.aar, "pers"))[1]
  dode.hittil.i.aar <- skilletegn(dode.hittil.i.aar)

   #Innbyggere i 2040
  innb40 <- as.character(kommunetall[7])
  innb40 <- unlist(strsplit(innb40, "innb"))[1]
  innb40 <- trimws(innb40)
  innb40 <- skilletegn(innb40)

  #Lånegjeld
  laan <- as.character(kommunetall[34])
  laan <- unlist(strsplit(laan, "kron"))[1]
  laan <- trimws(laan)
  laan <- skilletegn(laan)

  #Utskrift
  cat(paste0("Fakta om ", navn, "\n"))
  cat(paste0(navn, " har ", folketall, " innbyggere.\n")) 
  cat(paste0("Så langt i år er det født ", fodte.hittil.i.aar, " barn i kommunen, mens ",
                      dode.hittil.i.aar, " mennesker døde.","\n"))
  cat(paste0("I ", navn, " vil det bo ", innb40, " mennesker innen 2040.", "\n"))
  cat(paste0("Kommunens lånegjeld er ", laan, " kroner per innbygger.", "\n\n"))
  cat("Kilde: SSB")
}

fakta("bergen")
## Fakta om Bergen
## Bergen har 281.978 innbyggere.
## Så langt i år er det født 3.167  barn i kommunen, mens 1.892  mennesker døde.
## I Bergen vil det bo 310.648 mennesker innen 2040.
## Kommunens lånegjeld er 54.860 kroner per innbygger.
## 
## Kilde: SSB
fakta("osteroy")
## Fakta om Osterøy
## Osterøy har 8.114 innbyggere.
## Så langt i år er det født 94 barn i kommunen, mens 67 mennesker døde.
## I Osterøy vil det bo 9629 mennesker innen 2040.
## Kommunens lånegjeld er 84.823 kroner per innbygger.
## 
## Kilde: SSB
fakta("oslo")
## Fakta om Oslo
## Oslo har 685.811 innbyggere.
## Så langt i år er det født 9.309  barn i kommunen, mens 3.894  mennesker døde.
## I Oslo vil det bo 815.514 mennesker innen 2040.
## Kommunens lånegjeld er 42.724 kroner per innbygger.
## 
## Kilde: SSB
fakta("evenes")
## Fakta om Evenes
## Evenes har 1.376 innbyggere.
## Så langt i år er det født 4 barn i kommunen, mens 9 mennesker døde.
## I Evenes vil det bo 1379 mennesker innen 2040.
## Kommunens lånegjeld er 43.280 kroner per innbygger.
## 
## Kilde: SSB