Skip to content

Instantly share code, notes, and snippets.

@jokull
Created October 26, 2020 14:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jokull/eac6df2443fe94682e7a72f35c4483eb to your computer and use it in GitHub Desktop.
Save jokull/eac6df2443fe94682e7a72f35c4483eb to your computer and use it in GitHub Desktop.
hagstofan-rafhjol
# 87116010 = Lítil rafknúin ökutæki og hlaupahjól gerð fyrir aksturshraða < 25 km á klst (reiðhjól b og c, létt bifhjól 1)
# 87116090 = Létt bifhjól 2
# 87120000 = Reiðjól
# From january 2020
# 8711.6011 = reiðhjól b
# 8711.6012 = reiðhjól c
# 8711.6013 = létt bifhjól 1
library(scales)
heild_inn_ <- mutate(heild_inn, month = make_date(ar, man))
rafhjol <- filter( # Combine the two e-bike tollskrárnumer
heild_inn_,
tollskrarnumer == "87116010" | tollskrarnumer == "87116090" | tollskrarnumer == "87116011" | tollskrarnumer == "87116013"
) %>%
ungroup(tollskrarnumer) %>%
mutate(tollskrarnumer = "Rafhjól")
hlaupahjol <- filter( # Combine the two e-bike tollskrárnumer
heild_inn_,
tollskrarnumer == "87116012"
) %>%
ungroup(tollskrarnumer) %>%
mutate(tollskrarnumer = "Hlaupahjól")
hjol <- filter(
heild_inn_,
tollskrarnumer == "87120000"
) %>%
ungroup(tollskrarnumer) %>%
mutate(tollskrarnumer = "Hjól")
# Unit graph
units <- bind_rows(hjol, rafhjol, hlaupahjol) %>%
filter(eining == "vEin") %>%
filter(month >= make_date(2019, 1, 1)) %>%
group_by(tollskrarnumer, month) %>%
summarize(gildi = round(sum(gildi), digits = 0))
ggplot(data = units, aes(x = month, y = gildi, fill = tollskrarnumer)) +
geom_col() +
geom_text(
data = subset(units, gildi != 0),
aes(label = gildi),
position = position_stack(vjust = .5))
# Import value graph
fob <- bind_rows(hjol, rafhjol, hlaupahjol) %>%
filter(eining == "fob") %>%
filter(month >= make_date(2019, 1, 1)) %>%
group_by(tollskrarnumer, month) %>%
mutate(gildi = gildi / 10^6) %>%
summarize(gildi = round(sum(gildi), digits = 0))
ggplot(data = fob, aes(x = month, y = gildi, fill = tollskrarnumer)) +
geom_col() +
geom_text(data = subset(fob, gildi != 0), aes(label = gildi), position = position_stack(vjust = .5)) +
scale_y_continuous(labels = unit_format(unit = "m.kr."))
library(tidyverse)
library(pxweb)
library(lubridate)
# Hér er get kall á hagstofuna út frá json fyrirspurninni innflutningur_hjol.json
px_data <- pxweb_get(url = "http://px.hagstofa.is//pxis/api/v1/is/Efnahagur/utanrikisverslun/1_voruvidskipti/03_inntollskra/UTA03803.px",
query = "fyrirspurnir/innflutningur_hjol.json")
hjol <- px_data$data
view(hjol)
#Komum gögnunum í gagnaramma, a.k.a. "tibblu"
tibbla <- tibble(
key = map(hjol, "key"), # Búum til list columns inni í tibblunni
values = map(hjol, "values")
) %>%
mutate(tollskrarnumer = map_chr(.x = key, ~pluck(.x[[1]])), #Búum til nýja dálka út frá innihaldi listcolumns
land = map_chr(.x = key, ~pluck(.x[[2]])),
timabil = map_chr(.x = key, ~pluck(.x[[3]])),
eining = map_chr(.x = key, ~pluck(.x[[4]])),
gildi = map_chr(.x = values, ~pluck(.x[[1]])),
gildi = as.numeric(gildi)) %>%
select(-key, -values) %>% # Fjarlægjum list columns eftir að hafa sett allt í sinn eigin dálk
separate(timabil, into = c("ar", "man"), sep = "M") %>% #Brjótum 'tímabil' dálkinn með sína "2017M01" strengi, niður í tvo nýja dálka
mutate_at(.vars = vars(man, ar), #Tökum þessa nýju dálka
.funs = as.numeric) # og gerum þá að numeric-dálkum
# Heildarinnflutningur óháð landi
heild_inn <- tibbla %>%
select(-land) %>% # Í raun óþarfi út af næstu línu, en You get the point
group_by(tollskrarnumer, ar, man, eining) %>%
summarize(gildi = sum(gildi))
heild_inn
# Eitthvað random graf fyrir CIF og FOB út frá tollskrárnúmerum sem innihalda "87116"
heild_inn %>%
#filter(eining %in% c("cif", "fob"),
# str_detect(string = tollskrarnumer, pattern = "87116")) %>%
filter(eining == "fob") %>%
mutate(dags = make_date(year = ar,
month = man,
day = 1)) %>%
ggplot(aes(x = dags, y = gildi, color = eining)) +
geom_line() +
facet_grid(rows = vars(tollskrarnumer))
##facet_grid(cols = vars(tollskrarnumer)) #eða facetta í raðir, frekar en dálka
{
"query": [
{
"code": "Tollskrárnúmer",
"selection": {
"filter": "item",
"values": [
"87116010",
"87116090",
"87120000",
"87116011",
"87116012",
"87116013"
]
}
},
{
"code": "Land",
"selection": {
"filter": "item",
"values": ["AF", "AL", "DZ", "AS", "AD", "AO", "AI", "AG", "AR", "AM", "AW", "AT", "AZ", "AX", "AU", "BS", "US", "UM", "BD", "BB", "BH", "BY", "BE", "BZ", "BJ", "BM", "BQ", "BA", "BW", "BV", "BO", "BR", "IO", "GB", "BN", "BG", "BF", "BI", "BT", "CV", "KY", "TD", "CL", "CC", "CO", "CK", "CR", "CI", "CW", "DK", "DJ", "DM", "DO", "EG", "EE", "EC", "SV", "ER", "SZ", "ET", "FK", "FJ", "PH", "FI", "FR", "GF", "PF", "TF", "FO", "GA", "GM", "GE", "GH", "GI", "GN", "GW", "GD", "GR", "GL", "GP", "GU", "GT", "GG", "GY", "HT", "HM", "NL", "HN", "HK", "IN", "ID", "IQ", "IR", "IE", "IL", "IT", "JM", "JP", "YE", "JE", "CX", "VI", "VG", "JO", "KH", "CM", "CA", "KZ", "QA", "KE", "CN", "KI", "CD", "CG", "KM", "KP", "KR", "HR", "KW", "CU", "KG", "CY", "LA", "LS", "LV", "LI", "LT", "LB", "LR", "LY", "LU", "MG", "MO", "MY", "MW", "MV", "ML", "MT", "MA", "MH", "MQ", "YT", "MR", "MU", "MX", "CF", "GQ", "FM", "MD", "MN", "ME", "MS", "MC", "MZ", "MM", "IM", "NA", "NR", "NP", "NI", "NU", "NE", "NG", "MP", "MK", "NO", "NF", "NC", "NZ", "OM", "NN", "PK", "PW", "PS", "PA", "PG", "PY", "VA", "PE", "PN", "PT", "PL", "PR", "RE", "RO", "RU", "RW", "SB", "AE", "WS", "SM", "BL", "SH", "KN", "LC", "SX", "MF", "PM", "VC", "ST", "SA", "SN", "RS", "SC", "SG", "SL", "SK", "SI", "SO", "ES", "LK", "ZA", "GS", "AQ", "SS", "SD", "SR", "SJ", "CH", "SE", "SY", "TJ", "TW", "TZ", "CZ", "TH", "TL", "TK", "TO", "TG", "TT", "TC", "TN", "TM", "TV", "TR", "HU", "UY", "UG", "UA", "UZ", "VU", "VE", "EH", "VN", "WF", "ZM", "ZW", "DE"]
}
},
{
"code": "Mánuður",
"selection": {
"filter": "item",
"values": ["2018M01", "2018M02", "2018M03", "2018M04", "2018M05", "2018M06", "2018M07", "2018M08", "2018M09", "2018M10", "2018M11", "2018M12", "2019M01", "2019M02", "2019M03", "2019M04", "2019M05", "2019M06", "2019M07", "2019M08", "2019M09", "2019M10", "2019M11", "2019M12", "2020M01", "2020M02", "2020M03", "2020M04", "2020M05", "2020M06", "2020M07", "2020M08"]
}
},
{
"code": "Eining",
"selection": {
"filter": "item",
"values": ["kg", "fob", "cif", "vEin"]
}
}
],
"response": {
"format": "json"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment