Skip to content

Instantly share code, notes, and snippets.

View peterdalle's full-sized avatar

Peter M. Dahlgren peterdalle

View GitHub Profile
@peterdalle
peterdalle / convert-confidence-interval-to-p-value.r
Last active December 7, 2018 20:36
Convert 95% confidence interval (estimate, odds ratio, risk ratio or hazard ratio) to a p-value
# Convert a 95% confidence interval to a p-value (two-sided).
# Based on:
# How to obtain the P value from a confidence interval
# BMJ 2011; 343 doi: https://doi.org/10.1136/bmj.d2304
# From estimate to p-value.
estimate.to.pvalue <- function(estimate, lower, upper) {
stderror = (upper - lower) / (2 * 1.96) # Get standard error.
z = estimate / stderror # Get test statistic.
p.value = exp(-0.717 * z - 0.416 * (z ^ 2)) # Get p-value.
@peterdalle
peterdalle / compare_data_frames.r
Created December 6, 2018 08:57
Compare two data frames for similarity (and if they are different, print out the differences)
# Create data.
set.seed(1341)
original <- data.frame(x = rnorm(10), y = rnorm(10))
change <- original
change[5, 1] <- 6
change[7, 2] <- 4
# Function to compare data frames for similarity.
compare_data_frames <- function(df1, df2) {
if (identical(df1, df2)) {
@peterdalle
peterdalle / create_pdf_diagram.rmd
Last active October 31, 2018 16:36
How to include DiagrammeR grViz() diagram and graphs in your RMarkdown
Include a DiagrammeR grViz() diagram into your RMarkdown document without the need to create a graph PDF file separately.
Based on the code from https://github.com/rich-iannone/DiagrammeR/issues/133#issuecomment-284370996.
```{r}
# Install packages.
install.packages(c("DiagrammeR", "DiagrammeRsvg", "rsvg", "magrittr"))
```
```{r}
@peterdalle
peterdalle / monitor_sql.cmd
Created October 25, 2018 13:26
Show SQL queries in MySQL in real time
@echo off
REM From https://stackoverflow.com/questions/568564/how-can-i-view-live-mysql-queries
mysqladmin -u username -ppassword --verbose -i 1 processlist
library(tidyverse)
n.samples = 25
set.seed(5)
rerun(20,rnorm(n.samples)) %>%
map_dfr(~data_frame(data = list(.x)), .id = 'samples') %>%
mutate(mu = map_dbl(data,mean),
se = map_dbl(data,~sd(.x)/sqrt(length(.x))),
top = mu +1.96*se,
@peterdalle
peterdalle / valresultat-partiledare-mediebevakning.r
Created September 13, 2018 18:13
News coverage of party leaders compared to Swedish 2018 election results
library(gganimate)
library(ggrepel)
library(lubridate)
library(tidyverse)
# The order is FUBAR.
partycolors <- c("#006AB3", "#000077", "#52BDEC", "#E8112d",
"#83CF39", "#009933", "#DA291C", "#E8AC41")
# Mediearkivet keywords:
@peterdalle
peterdalle / effect-sizes-density-plot.r
Created July 20, 2018 14:34
Density plot of effect sizes from social psychology and communication science
library(tidyverse)
df <- read.csv("https://raw.githubusercontent.com/peterdalle/effectsizes/master/soc-psych.tsv",
header=TRUE, sep="\t", stringsAsFactors=FALSE)
df.comm <- read.csv("https://raw.githubusercontent.com/peterdalle/effectsizes-comm/master/effectsizes.csv",
header=TRUE, sep=",", stringsAsFactors=FALSE)
ggplot() +
geom_density(aes(df$r), fill="red", alpha=0.3) +
@peterdalle
peterdalle / install-packages.r
Last active April 24, 2022 14:00
Install my commonly used R packages
favorite_packages <- c(
# Package development
"devtools", "Rcpp", "roxygen2", "testthat", "covr",
# Handle data
"rio", "tidyverse", "broom", "lubridate", "stringr",
# Database
"RMySQL",
@peterdalle
peterdalle / create_correlation.r
Created March 20, 2018 17:51
Create a data.frame with a fixed correlation between x and y
create_correlation <- function(n=1000, r=0.5) {
# Based on caracal:s answer at
# https://stats.stackexchange.com/questions/15011/generate-a-random-variable-with-a-defined-correlation-to-an-existing-variables/15040#15040
theta <- acos(r) # corresponding angle
x1 <- rnorm(n, 1, 1) # fixed given data
x2 <- rnorm(n, 2, 0.5) # new random data
X <- cbind(x1, x2) # matrix
Xctr <- scale(X, center=TRUE, scale=FALSE) # centered columns (mean 0)
Id <- diag(n) # identity matrix
Q <- qr.Q(qr(Xctr[ , 1, drop=FALSE])) # QR-decomposition, just matrix Q
@peterdalle
peterdalle / batch-resize-images.bat
Last active March 12, 2020 17:23
ImageMagick batch resize images in current directory to new directory
REM https://stackoverflow.com/questions/14304480/batch-resize-images-and-output-images-to-new-folder-with-imagemagick
magick mogrify -resize 1024 -quality 100 -path ./new *.jpg