options(encoding="UTF-8")
library(httr)
# use rjstat JSON-stat library
library(rjstat)
# bruk dplyr for å rydde tabeller og data
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# bruk writexl for å eksportere til excel
library(writexl)
# Adress to laks JSON-Stat dataset for laksestat - Index
url <- "https://data.ssb.no/api/v0/no/table/03024/"
data <- '{
"query": [],
"response": {
"format": "json-stat"
}
}'
d.tmp <- POST(url , body = data, encode = "json", verbose())
# get content from d.tmp as text, using fromJSONstat
laks <- fromJSONstat(content(d.tmp, "text"))
# definere tabell som frame
laks2 <- data.frame(laks)
# sette enklere navn på kolonner
colnames(laks2) <- c("gruppe", "enhet", "uke", "tall")
# definere og endre kolonner og radnavn for å lette håndtering
laks2$enhet <- as.character(laks2$enhet)
laks2$tall <- as.numeric(laks2$tall)
laks2$enhet[laks2$enhet == "Vekt (tonn)"] <- "tonn"
laks2$enhet[laks2$enhet == "Kilopris (kr)"] <- "pris"
laks2$gruppe[laks2$gruppe == "Fersk oppalen laks"] <- "fersk"
laks2$gruppe[laks2$gruppe == "Frosen oppalen laks"] <- "frosen"
# skrive tabell som inneholder data om fersk fisk
fersk <- laks2 %>% filter(gruppe %in% "fersk") %>%
select(enhet, uke, tall)
# skrive tabell som inneholder data om frossen fisk
frosen <- laks2 %>% filter(gruppe %in% "frosen") %>%
select(enhet, uke, tall)
# rydde i tabellene
fersk2 <- reshape(fersk, idvar = "uke", timevar = "enhet", direction = "wide")
frosen2 <- reshape(frosen, idvar = "uke", timevar = "enhet", direction = "wide")
colnames(fersk2) <- c("uke", "fersk_tonn", "fersk_pris")
colnames(frosen2) <- c("uke", "frosen_tonn", "frosen_pris")
# slå sammen fersk og frossen fisk
samletlaks <- cbind(fersk2, frosen2)
colnames(samletlaks) <- c("uke", "fersk_tonn", "fersk_pris", "uke_s", "frosen_tonn", "frosen_pris")
# sletter en unødvendig kolonne
samletlaks$uke_s <- NULL