Hi,
I'm using the skimr package, and I added two summary functions (iqr_na_rm, i.e., a function which computes the interquartile range by preliminarily removing any na value in the variable we're skimming, and median_na_rm, the equivalent function for the median) to the list of summary functions for the function skim. However, by default these new summary functions (called skimmers in skimr documentation) appear at the end of the table. Instead, I'd like median and iqr to appear after mean and sd. Reprex:
library(skimr)
#>
#> Attaching package: 'skimr'
#> The following object is masked from 'package:stats':
#>
#> filter
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(ggplot2)
iqr_na_rm <- function(x) IQR(x, na.rm = TRUE)
median_na_rm <- function(x) median(x, na.rm = TRUE)
skim_with(numeric = list(p50 = NULL, median = median_na_rm, iqr = iqr_na_rm),
integer = list(p50 = NULL, median = median_na_rm, iqr = iqr_na_rm))
msleep %>%
group_by(vore) %>%
skim(sleep_total)
#> Skim summary statistics
#> n obs: 83
#> n variables: 11
#> group variables: vore
#>
#> ── Variable type:numeric ───────────────────────────────────────────────────────────────────────────────────
#> vore variable missing complete n mean sd p0 p25 p75 p100
#> carni sleep_total 0 19 19 10.38 4.67 2.7 6.25 13 19.4
#> herbi sleep_total 0 32 32 9.51 4.88 1.9 4.3 14.22 16.6
#> insecti sleep_total 0 5 5 14.94 5.92 8.4 8.6 19.7 19.9
#> omni sleep_total 0 20 20 10.93 2.95 8 9.1 10.93 18
#> <NA> sleep_total 0 7 7 10.19 3 5.4 8.65 12.15 13.7
#> hist median iqr
#> ▃▇▂▇▆▃▂▃ 10.4 6.75
#> ▆▇▁▂▂▆▇▅ 10.3 9.92
#> ▇▁▁▁▁▁▃▇ 18.1 11.1
#> ▆▇▂▁▁▁▁▂ 9.9 1.83
#> ▃▃▁▁▃▇▁▇ 10.6 3.5
Created on 2019-03-14 by the reprex package (v0.2.1)
As you can see, median and iqr are printed and the end of the table, after the sparkline histogram. I'd like them to be printed after sd and before p0. Is it possible?