Skip to content

Instantly share code, notes, and snippets.

View mschnetzer's full-sized avatar

Matthias Schnetzer mschnetzer

View GitHub Profile
@mschnetzer
mschnetzer / arctic_ice.R
Last active July 25, 2023 21:08
Ausdehnung des arktischen Eises im Jahresverlauf
library(tidyverse)
library(gghighlight)
library(ggtext)
# Data download: https://ads.nipr.ac.jp/vishop/#/extent
raw <- read.csv("VISHOP_EXTENT_GRAPH.csv")
dat <- raw |>
select(month, day = date, X1989:X2023) |>
pivot_longer(cols = X1989:X2023, names_to = "year", values_to = "ice",
librarian::shelf(tidyverse, pdftools, geojsonsf, sf, ggtext, patchwork)
# PDF herunterladen und Seite 3 extrahieren
rawpdf <- pdf_text("https://www.parlament.gv.at/dokument/XXVII/AB/14482/imfname_1572157.pdf")
rawpdf <- rawpdf[3]
# Rohdaten in Zeilen umwandeln und Datenbereich auswählen
lines <- strsplit(rawpdf, '\n') |> unlist() |> str_trim(side = "left")
short <- lines[c(11:24,30:36,42:63)]
library(tidyverse)
library(rvest)
library(cropcircles)
library(magick)
library(gt)
library(gtExtras)
data <- read_html("https://sport.orf.at/stories/3111293/") |>
html_elements("section") |>
html_table() |>
library(tidyverse)
library(eurostat)
library(countrycode)
library(gt)
library(gtExtras)
data <- get_eurostat("prc_hicp_manr", filters = list(coicop = "CP00"))
ea.avg <- data |> filter(geo == "EA") |> slice_max(time, n=1) |> pull(values)
@mschnetzer
mschnetzer / teilzeit.R
Created April 7, 2023 09:28
Geschlechtsspezifische Unterschiede bei den Gründen für Teilzeit (https://twitter.com/matschnetzer/status/1625529059722641411)
library(tidyverse)
library(waffle)
library(msthemes)
library(viridis)
library(haven)
library(MetBrewer)
mz <- read_dta("mz2019.dta")
mz |> select(gewjahr, bsex, dteil) |>
librarian::shelf(tidyverse, STATcubeR, janitor, ggbump, ggtext, colorspace, futurevisions, msthemes)
# Set date language to German
Sys.setlocale(locale = "de_AT")
# Load latest data from Statistics Austria API
database <- "str:database:devpi15"
fields <- sc_schema_db(database) |> sc_schema_flatten("FIELD")
measures <- sc_schema_db(database) |> sc_schema_flatten("MEASURE")
db_schema <- sc_schema_db(database)
@mschnetzer
mschnetzer / ageinc.R
Last active December 24, 2022 08:19
Durchschnittliches Alter und Einkommen auf Gemeindeebene (https://twitter.com/matschnetzer/status/1606233928745988096)
library(tidyverse)
library(sf)
library(msthemes)
library(raster)
library(rmapshaper)
library(smoothr)
library(patchwork)
library(showtext)
select <- dplyr::select
@mschnetzer
mschnetzer / atdist.R
Created December 22, 2022 19:37
Wenn Österreich so verteilt wäre wie Vermögen (https://twitter.com/matschnetzer/status/1605844993683337216)
library(tidyverse)
library(msthemes)
library(sf)
library(showtext)
font_add_google("Roboto Condensed", "Roboto")
font_add_google("Playfair Display", "Playfair")
font_add_google("Roboto Mono", "Mono")
showtext_opts(dpi = 320)
showtext_auto()
@mschnetzer
mschnetzer / arbeitszeit_2019.R
Created December 20, 2022 20:12
Arbeitszeitrealitäten und -wünsche im Mikrozensus 2019 (https://twitter.com/matschnetzer/status/1605221105522073600)
library(tidyverse)
library(haven)
library(msthemes)
library(gganimate)
mz <- read_dta("mz2019.dta")
mz |> filter(xerwstat == 1, dbers <6, dstd < 999, balt %in% 20:69, aquartal == 4) |>
select(asbper, gewjahr, bsex, balt, dstd, dwstd) |>
mutate(status = case_when(
@mschnetzer
mschnetzer / gpghex.R
Last active December 15, 2022 20:12
3D-Grafik der geschlechtsspezifischen Lohnunterschiede in Österreich (https://twitter.com/matschnetzer/status/1603058949191778304)
librarian::shelf(tidyverse,pdftools,sf,msthemes,rayshader,wesanderson)
# Download PDF from Statistik Austria: https://www.statistik.at/fileadmin/publications/Lohnsteuer-2021.pdf
rawpdf <- pdf_text("Lohnsteuer-2021.pdf")
# Manual editing to obtain the required data from the two-column table
tmppdf <- rawpdf[67:68] |> strsplit('\n') |> unlist()
df <- tmppdf[c(11:55,67:86)] |> as.data.frame() |> setNames("string") |>
separate(string, into = c("gem","male","female", "gem2", "male2", "female2"), sep = "\\s\\s+")