Skip to content

Instantly share code, notes, and snippets.

View guyabel's full-sized avatar

Guy Abel guyabel

View GitHub Profile
@guyabel
guyabel / thesis.tex
Created March 15, 2014 21:30
thesis.tex
\documentclass[11pt]{report}
\usepackage[a4paper,margin=2cm, bindingoffset=2cm]{geometry}
\usepackage{appendix}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{threeparttable}
\usepackage{natbib}
\bibliographystyle{chicago}
@guyabel
guyabel / sweden1993.csv
Created July 6, 2016 04:24
Life table data for Sweden 1993 from Preston, Samuel H, Patrick Heuveline, and Michel Guillot. (1991), Demography: Measuring and Modeling Population Processes., New York: Blackwell
age x Nx_m Nx_f Lx_m Lx_f Fx Mx_f
00--05 0 310189 293395 496754 497487 0 6840
05--10 5 261963 248369 496297 497138 0 4150
10--15 10 252046 240012 495989 496901 0 3365
15--20 15 274711 261346 495113 496531 0.012 5270
20--25 20 296679 285209 493460 495902 0.0908 9240
25--30 25 333726 314388 491475 495168 0.1499 8230
30--35 30 296774 281290 489325 494213 0.1125 5470
35--40 35 299391 286923 486487 492760 0.0441 3155
40--45 40 314295 304108 482392 490447 0.0074 1770
@guyabel
guyabel / cd.R
Last active May 1, 2018 18:46
GuyAbelUW
## ----setup, include=FALSE------------------------------------------------
library(knitr)
knitr::opts_chunk$set(prompt= TRUE, collapse = TRUE, comment = NA)
knitr::opts_chunk$set(fig.width = 5, fig.height = 5)
knitr::knit_hooks$set(purl = hook_purl)
## ---- message=FALSE------------------------------------------------------
# install.packages("migest")
library(tidyverse)
d0 <- read_csv(system.file("imr", "reg_flow.csv", package = "migest"))
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<table>
<tbody>
<tr>
ipums_clean_dta <- function(
d = NULL, numeric_convert = NULL, string_as_factors = TRUE, clean_labels = FALSE,
mis_lab = c("unknown", "niu (not in universe)", "not reported/missing",
"unknown/missing", "response suppressed", "unclassifiable")
){
d %>%
{if(clean_labels) dplyr::mutate_if(is.labelled, ipumsr::lbl_clean) else .} %>%
dplyr::mutate_if(is.labelled, ~ipumsr::lbl_na_if(., ~.lbl %in% mis_lab)) %>%
dplyr::mutate_at({numeric_convert}, haven::zap_labels) %>%
dplyr::mutate_if(is.labelled, haven::as_factor) %>%
@guyabel
guyabel / migrant_sankey.R
Last active June 13, 2021 17:00
Animated sankey plots for UN migrant stock data (IMS2020) related to https://guyabel.com/post/animated-sankey/ blog post
library(tidyverse)
library(readxl)
library(tweenr)
library(ggforce)
library(gridExtra)
library(animation)
library(magick)
# download the migrant stock origin-destination xlsx file from the UN site
x <- tempfile(fileext = ".xlsx")
@guyabel
guyabel / china_flow_2010_2015.csv
Last active May 29, 2021 06:45
five year migration flows between chinese provinces 2010-2015, as used in https://doi.org/10.1177/0308518X17718375. See https://guyabel.com/post/chinese-migration-chord-diagram/ for more details.
orig dest flow
Beijing Beijing 0
Tianjin Beijing 67355
Hebei Beijing 864387
Shanxi Beijing 225032
Inner Mongolia Beijing 103355
Liaoning Beijing 155032
Jilin Beijing 104774
Heilongjiang Beijing 194387
Shanghai Beijing 26581
name region order colour gap name_zh
Beijing East 1 #B61416 2 北京
Tianjin East 2 #C01517 2 天津
Hebei East 3 #CA1718 2 河北
Shandong East 4 #D4181A 2 山东
Jiangsu East 5 #DE191B 2 江苏
Shanghai East 6 #E91A1C 2 上海
Zhejiang East 7 #F31B1D 2 浙江
Fujian East 8 #FD1C1F 2 福建
Guangdong East 9 #FF1E20 2 广东
@guyabel
guyabel / pop_total.R
Created November 14, 2022 15:07
Animated population tree map plot for UN WPP2022 data used in https://guyabel.com/post/animated-population-treemaps/ blog post.
library(tidyverse)
library(treemapify)
library(countrycode)
library(gganimate)
library(magick)
# devtools::install_github("PPgp/wpp2022")
library(wpp2022)
# load data
data(pop1dt)
@guyabel
guyabel / un_stock.R
Last active October 12, 2023 01:54
Read in UN DESA bilateral stock data (2020) into R
library(tidyverse)
library(readxl)
download.file(url = "https://www.un.org/development/desa/pd/sites/www.un.org.development.desa.pd/files/undesa_pd_2020_ims_stock_by_sex_destination_and_origin.xlsx",
destfile = "undesa_pd_2020_ims_stock_by_sex_destination_and_origin.xlsx", mode = "wb")
d <- read_excel(path = "undesa_pd_2020_ims_stock_by_sex_destination_and_origin.xlsx",
sheet = 2, skip = 10, na = "..", guess_max = 1e5) %>%
select(-1, -3, -5) %>%
pivot_longer(cols = -(1:4), names_to = "year", values_to = "stock") %>%