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