Skip to content

Instantly share code, notes, and snippets.

View joelgombin's full-sized avatar

Joel Gombin joelgombin

View GitHub Profile
@joelgombin
joelgombin / mainstreams.R
Last active November 8, 2023 08:20
French main streams according to Wikidata
library(WikidataR)
library(glitter)
library(tidyverse)
find_item("main stream")
fleuves <- spq_init() %>%
spq_add("?items wdt:P31 wd:Q573344") %>%
spq_add("?items wdt:P17 wd:Q142") %>%
spq_add("?items wdt:P403 ?mouth") %>%
@joelgombin
joelgombin / valeurs_nulles.R
Last active May 6, 2020 16:36
Compter tous les nulls et autres d'un JDD
library(tidyverse)
base <- read_csv("./Documents/Base_menage-extrait.csv")
is_null_vector <- function(x) purrr::map_lgl(x, ~ is.null(.))
base %>%
summarise(across(.fns = list(NAs = ~ sum(is.na(.)),
NULLs = ~ sum(is_null_vector(.) | . %in% "NULL"),
empties = ~ sum(. %in% "")))) %>%
@joelgombin
joelgombin / circos.geojson
Created April 9, 2017 08:46
circonscriptions législatives 2010
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

Keybase proof

I hereby claim:

  • I am joelgombin on github.
  • I am joelgombin (https://keybase.io/joelgombin) on keybase.
  • I have a public key whose fingerprint is C943 DCCF 598B 4728 54AA 557E DB74 76FE CE62 84E5

To claim this, I am signing this object:

@joelgombin
joelgombin / reponse.txt
Last active January 25, 2017 01:07
Réponse aux mails de sollicitations des "Editions européennes universitaires"
Bonjour,
merci de vos relances insistantes mais votre proposition ne m'intéresse pas. [Mon mémoire|ma thèse] est disponible en ligne librement [mettre lien vers HAL-SHS ou autre], qui veut le lire le peut gratuitement. Et celui qui en souhaite une version papier l'imprimera à ses propres frais pour bien moins cher que ce que vous vendriez le livre. L'université crève des "éditeurs" qui captent de manière indue la valeur créée par les universitaires... et rachetée par les universités. N'ajoutez pas le harcèlement à l'immoralité de ce mode de fonctionnement reposant sur la spoliation et la prédation.
Je profite de ce message pour vous faire part de la désapprobation unanime de nos professions à l'égard de vos tentatives d'hameçonnage de la recherche publique. Mais, compte tenu de la veille intensive que vous semblez pratiquer, vous ne pouvez l'ignorer !
Je vous remercie donc de ne plus me relancer et de bien vouloir retirer mes coordonnées de vos bases de données.
Vous en remerciant d'avance,
---
title: "Test"
author: "Joël Gombin"
date: "15 février 2016"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
@joelgombin
joelgombin / IIDVIZs01.R
Created January 14, 2013 17:02
R code for the Dataviz MOOC exercise, week 1.
library(ggplot2)
top10 <- structure(list(Country = structure(c(10L, 2L, 9L, 3L, 6L, 7L,
8L, 4L, 5L, 1L), .Label = c("Brazil", "China", "France", "Germany",
"India", "Japan", "Russia", "Saudi Arabia", "UK", "USA"), class = "factor"),
Budget = c(739.3, 89.8, 62.7, 58.8, 58.4, 52.7, 46.2, 44.2,
37.3, 36.6)), .Names = c("Country", "Budget"), class = "data.frame", row.names = c(NA,
-10L))
top10$Country <- factor(top10$Country, levels=c(as.character(rev(top10$Country))))
png(filename="fig1.png",600,600,res=72)
@joelgombin
joelgombin / ggplot.acm
Created October 9, 2012 03:26
Function for plotting a PCA (realised with the FactoMineR package) with ggplot2
ggplot.acm <- function(acm, axes=c(1,2), mod=TRUE, ind=FALSE, filtre=0, axis.plot=TRUE, alpha=1, point.type="petit", ellipses=NA, coloriage=NA) {
## acm doit être un objet de classe MCA
## axes permet de choisir les dimensions représentées
## mod indique s'il faut représenter les modalités des variables
## ind indique s'il faut représenter les individus (en transparence)
## filtre indique la valeur du cos2 au dessus de laquelle les modalités doivent être représentées
## axis.plot indique s'il faut tracer les axes
## alpha permet de contrôler l'intensité des points des individus (valeur nulle ou positive)
## point.type contrôle la taille du point des individus. Peut prendre les valeurs "petit" ou "gros"
## ellipses doit être un nom de variable à représenter sous forme d'ellipses
@joelgombin
joelgombin / gist:9002444
Created February 14, 2014 14:57
Nested means discretisation (Scripter, 1970)
n_means <- function(x, n) {
if (!(log(n, base=2) %% 1 %in% 0)) {
stop("The number of classes is not a power of 2.")
}
index <- rep(1, length(x))
m <- c()
for (i in 1:log(n, base=2)) {
m <- sort(c(m, tapply(x, index, mean)))
index <- findInterval(x, m)
}