diff --git a/DESCRIPTION b/DESCRIPTION index f439d2d17..2c8454197 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -3,12 +3,12 @@ Package: datawizard Title: Easy Data Wrangling and Statistical Transformations Version: 0.4.1.10 Authors@R: c( + person("Indrajeet", "Patil", , "patilindrajeet.science@gmail.com", role = c("aut", "cre"), + comment = c(ORCID = "0000-0003-1995-6531", Twitter = "@patilindrajeets")), person("Dominique", "Makowski", , "dom.makowski@gmail.com", role = "aut", comment = c(ORCID = "0000-0001-5375-9967", Twitter = "@Dom_Makowski")), person("Daniel", "Lüdecke", , "d.luedecke@uke.de", role = "aut", comment = c(ORCID = "0000-0002-8895-3206", Twitter = "@strengejacke")), - person("Indrajeet", "Patil", , "patilindrajeet.science@gmail.com", role = c("aut", "cre"), - comment = c(ORCID = "0000-0003-1995-6531", Twitter = "@patilindrajeets")), person("Mattan S.", "Ben-Shachar", , "matanshm@post.bgu.ac.il", role = "aut", comment = c(ORCID = "0000-0002-4287-4801")), person("Brenton M.", "Wiernik", , "brenton@wiernik.org", role = "aut", diff --git a/paper/paper.Rmd b/paper/paper.Rmd index 068315df3..a1917cbdf 100644 --- a/paper/paper.Rmd +++ b/paper/paper.Rmd @@ -1,35 +1,42 @@ --- -title: "datawizard: An R Package for Easy Data Wrangling" +title: "datawizard: An R Package for Easy Data Preparation and Statistical Transformations" tags: - R - easystats authors: - affiliation: 1 - name: Dominique Makowski - orcid: 0000-0001-5375-9967 -- affiliation: 2 name: Indrajeet Patil orcid: 0000-0003-1995-6531 +- affiliation: 2 + name: Dominique Makowski + orcid: 0000-0001-5375-9967 - affiliation: 3 name: Mattan S. Ben-Shachar orcid: 0000-0002-4287-4801 - affiliation: 4 - name: Brenton M. Wiernik + name: Brenton M. Wiernik^[Brenton Wiernik is currently an independent researcher and Research Scientist at Meta, Demography and Survey Science. The current work was done in an independent capacity.] orcid: 0000-0001-9560-6336 - affiliation: 5 + name: Etienne Bacher + orcid: 0000-0002-9271-5075 +- affiliation: 6 name: Daniel Lüdecke orcid: 0000-0002-8895-3206 + affiliations: - index: 1 - name: Nanyang Technological University, Singapore + name: esqLABS GmbH, Germany - index: 2 - name: Center for Humans and Machines, Max Planck Institute for Human Development, Berlin, Germany + name: Nanyang Technological University, Singapore - index: 3 name: Ben-Gurion University of the Negev, Israel - index: 4 - name: Department of Psychology, University of South Florida, USA + name: Independent Researcher - index: 5 - name: University Medical Center Hamburg-Eppendorf, Germany + name: Luxembourg Institute of Socio-Economic Research (LISER), Luxembourg +- index: 6 + name: University Medical Center Hamburg-Eppendorf, Germany + date: "`r Sys.Date()`" bibliography: paper.bib output: rticles::joss_article @@ -42,23 +49,120 @@ link-citations: yes knitr::opts_chunk$set( collapse = TRUE, out.width = "100%", - dpi = 450, + dpi = 300, comment = "#>", message = FALSE, warning = FALSE ) + +library(datawizard) +set.seed(2016) ``` # Summary +The `{datawizard}` package for the R programming language [@base2021] provides a lightweight toolbox to assist in keys steps involved in any data analysis workflow: (1) wrangling the raw data to get it in the needed form, (2) applying preprocessing steps and statistical transformations, and (3) compute statistical summaries of data properties and distributions. Therefore, it can be a valuable tool for R users and developers looking for a lightweight option for data preparation. + # Statement of Need +The `{datawizard}` package is part of `{easystats}`, a collection of R packages designed to make statistical analysis easier (@Ben-Shachar2020, @Lüdecke2020parameters, @Lüdecke2020performance, @Lüdecke2021see, @Lüdecke2019, @Makowski2019, @Makowski2020). As this ecosystem follows a "0-external-hard-dependency" policy, a base R data manipulation package that relies only on base R needed to be created. In effect, `{datawizard}` provides data processing backend for this entire ecosystem. +In addition to its usefulness to the `{easystats}` ecosystem, it also provides *an* option for R users and package developers if they wish to keep their (recursive) dependency weight to a minimum (for other options, see @Dowle2021, @Eastwood2021, etc.). + +Because `{datawizard}` is also meant to be used and adopted easily by a wide range of users, its workflow and syntax are designed to be similar to `{tidyverse}` (@Wickham2019), a widely used ecosystem of R packages. Thus, users familiar with the `{tidyverse}` can easily translate their knowledge and make full use of `{datawizard}`. + +In addition to being a lightweight solution to clean messy data, `{datawizard}` also provides helpers for the other important step of data analysis: applying statistical transformations to the cleaned data while setting up statistical models. This includes various types of data standardization, normalization, rank-transformation, and adjustment. These transformations, although widely used, are not currently collectively implemented in a package in the R ecosystem, so `{datawizard}` can help new R users in finding the transformation they need. + +Lastly, `{datawizard}` also provides a toolbox to create detailed summaries of data properties and distributions (e.g., tables of descriptive statistics for each variable). This is a common step in data analysis, but it is not available in base R or many modeling packages, so its inclusion makes `{datawizard}` a one-stop-shop for data preparation tasks. + +# Features + +## Data Preparation + +The raw data is rarely in a state that it can be directly fed into a statistical model. It often needs to be modified in various ways. For example, columns need to be renamed, certain portions of the data need to be filtered out, some columns need to be reshaped, data scattered across multiple tables needs to be joined, etc. + +`{datawizard}` provides various functions for cleaning and preparing data (see Table 1). + +| Function | Operation | +| :--------------- | :------------------------------------ | +| `data_filter()` | to select only certain *observations* | +| `data_select()` | to select only a few *variables* | +| `data_extract()` | to extract a single *variable* | +| `data_rename()` | to rename variables | +| `data_to_long()` | to convert data from wide to long | +| `data_to_wide()` | to convert data from long to wide | +| `data_join()` | to join two data frames | +| ... | ... | + +Table: The table below lists a few key functions offered by *datawizard* for data wrangling. To see the full list, see the package website: + +We will look at one example function that converts data in wide format to tidy/long format: + +```{r} +stocks <- data.frame( + time = as.Date('2009-01-01') + 0:4, + X = rnorm(5, 0, 1), + Y = rnorm(5, 0, 2) +) + +stocks + +data_to_long( + stocks, + select = -c("time"), + names_to = "stock", + values_to = "price" +) +``` + +## Statistical Transformations + +Even after getting the raw data in the needed format, we may need to transform certain variables further to meet requirements imposed by a statistical test. + +`{datawizard}` provides a rich collection of such functions for transforming variables (see Table 2). + +| Function | Operation | +| :---------------- | :------------------------------------------- | +| `standardize()` | to center and scale data | +| `normalize()` | to scale variables to 0-1 range | +| `adjust()` | to adjust data for effect of other variables | +| `slide()` | to shift numeric value range | +| `ranktransform()` | to convert numeric values to integer ranks | +| ... | ... | + +Table: The table below lists a few key functions offered by *datawizard* for data transformations. To see the full list, see the package website: + +We will look at one example function that standardizes (i.e. centers and scales) data so that it can be expressed in terms of standard deviation: + +```{r} +d <- data.frame( + a = c(-2, -1, 0, 1, 2), + b = c(3, 4, 5, 6, 7) +) + +standardize(d, center = c(3, 4), scale = c(2, 4)) +``` + +## Summaries of Data Properties and Distributions + +The workhorse function to get a comprehensive summary of data properties is `describe_distribution()`, which combines a set of indices (e.g., measures of centrality, dispersion, range, skewness, kurtosis, etc.) computed by other functions in `{datawizard}`. + +```{r eval=FALSE} +describe_distribution(mtcars) +``` + +```{r echo=FALSE, eval=TRUE, results="asis"} +library(kableExtra) +options(digits = 3) +kbl(describe_distribution(mtcars), format = "latex", booktabs = TRUE, linesep = "") |> + kable_styling(latex_options = "scale_down") +``` + # Licensing and Availability -*see* is licensed under the GNU General Public License (v3.0), with all source code openly developed and stored at GitHub (), along with a corresponding issue tracker for bug reporting and feature enhancements. In the spirit of honest and open science, we encourage requests, tips for fixes, feature updates, as well as general questions and concerns via direct interaction with contributors and developers. +`{datawizard}` is licensed under the GNU General Public License (v3.0), with all source code openly developed and stored on GitHub (), along with a corresponding issue tracker for bug reporting and feature enhancements. In the spirit of honest and open science, we encourage requests, tips for fixes, feature updates, as well as general questions and concerns via direct interaction with contributors and developers. # Acknowledgments -*see* is part of the collaborative [*easystats*](https://github.com/easystats/easystats) ecosystem. Thus, we thank the [members of easystats](https://github.com/orgs/easystats/people) as well as the users. +`{datawizard}` is part of the collaborative [*easystats*](https://easystats.github.io/easystats/) ecosystem. Thus, we thank the [members of easystats](https://github.com/orgs/easystats/people) as well as the users. # References diff --git a/paper/paper.bib b/paper/paper.bib index 07f8cc211..d4ad31e2e 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -23,6 +23,17 @@ @Article{Lüdecke2020parameters pages = {2445}, } + @Article{Lüdecke2021see, + title = {{see}: An {R} Package for Visualizing Statistical Models}, + author = {Daniel Lüdecke and Indrajeet Patil and Mattan S. Ben-Shachar and Brenton M. Wiernik and Philip Waggoner and Dominique Makowski}, + journal = {Journal of Open Source Software}, + year = {2021}, + volume = {6}, + number = {64}, + pages = {3393}, + doi = {10.21105/joss.03393}, + } + @Article{Lüdecke2020performance, title = {{performance}: An {R} Package for Assessment, Comparison and Testing of Statistical Models}, author = {Daniel Lüdecke and Mattan S. Ben-Shachar and Indrajeet Patil and Philip Waggoner and Dominique Makowski}, @@ -112,3 +123,18 @@ @Manual{base2021 url = {https://www.R-project.org/}, } + @Manual{Eastwood2021, + title = {poorman: A Poor Man's Dependency Free Recreation of 'dplyr'}, + author = {Nathan Eastwood}, + year = {2021}, + note = {R package version 0.2.5}, + url = {https://CRAN.R-project.org/package=poorman}, + } + +@Manual{Dowle2021, + title = {data.table: Extension of `data.frame`}, + author = {Matt Dowle and Arun Srinivasan}, + year = {2021}, + note = {R package version 1.14.2}, + url = {https://CRAN.R-project.org/package=data.table}, + } diff --git a/paper/paper.log b/paper/paper.log new file mode 100644 index 000000000..133ebe3ac --- /dev/null +++ b/paper/paper.log @@ -0,0 +1,1161 @@ +This is XeTeX, Version 3.141592653-2.6-0.999994 (TeX Live 2022) (preloaded format=xelatex 2022.7.25) 27 JUL 2022 15:37 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**paper.tex +(./paper.tex +LaTeX2e <2022-06-01> patch level 5 +L3 programming layer <2022-07-15> (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/base/article.cls +Document Class: article 2021/10/04 v1.4n Standard LaTeX document class +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2021/10/04 v1.4n Standard LaTeX file (size option) +) +\c@part=\count181 +\c@section=\count182 +\c@subsection=\count183 +\c@subsubsection=\count184 +\c@paragraph=\count185 +\c@subparagraph=\count186 +\c@figure=\count187 +\c@table=\count188 +\abovecaptionskip=\skip47 +\belowcaptionskip=\skip48 +\bibindent=\dimen138 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/marginnote/marginnote.sty +Package: marginnote 2018/08/09 v1.4b non floating margin notes for LaTeX +\c@mn@abspage=\count189 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2022/05/29 v1.15 key=value parser (DPC) +\KV@toks@=\toks16 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2021/08/11 v1.11 sin cos tan (DPC) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: xetex.def on input line 107. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/graphics-def/xetex.def +File: xetex.def 2022/04/16 v5.0m Graphics/color driver for xetex +)) +\Gin@req@height=\dimen139 +\Gin@req@width=\dimen140 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2022/06/12 v2.14 LaTeX color extensions (UK) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: xetex.def on input line 227. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/graphics/mathcolor.ltx) +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1353. +Package xcolor Info: Model `RGB' extended on input line 1369. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1371. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1372. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1373. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1374. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1375. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1376. +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/preprint/authblk.sty +Package: authblk 2001/02/27 1.3 (PWD) +\affilsep=\skip49 +\@affilsep=\skip50 +\c@Maxaffil=\count190 +\c@authors=\count191 +\c@affil=\count192 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count193 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/titlesec/titlesec.sty +Package: titlesec 2021/07/05 v2.14 Sectioning titles +\ttl@box=\box51 +\beforetitleunit=\skip51 +\aftertitleunit=\skip52 +\ttl@plus=\dimen141 +\ttl@minus=\dimen142 +\ttl@toksa=\toks17 +\titlewidth=\dimen143 +\titlewidthlast=\dimen144 +\titlewidthfirst=\dimen145 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/tools/calc.sty +Package: calc 2017/05/25 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count194 +\calc@Bcount=\count195 +\calc@Adimen=\dimen146 +\calc@Bdimen=\dimen147 +\calc@Askip=\skip53 +\calc@Bskip=\skip54 +LaTeX Info: Redefining \setlength on input line 80. +LaTeX Info: Redefining \addtolength on input line 81. +\calc@Ccount=\count196 +\calc@Cskip=\skip55 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +\pgfutil@everybye=\toks18 +\pgfutil@tempdima=\dimen148 +\pgfutil@tempdimb=\dimen149 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box52 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/pgf.revision.tex) +Package: pgfrcs 2021/05/15 v3.1.9a (3.1.9a) +)) +Package: pgf 2021/05/15 v3.1.9a (3.1.9a) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2021/05/15 v3.1.9a (3.1.9a) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks19 +\pgfkeys@temptoks=\toks20 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +\pgfkeys@tmptoks=\toks21 +)) +\pgf@x=\dimen150 +\pgf@y=\dimen151 +\pgf@xa=\dimen152 +\pgf@ya=\dimen153 +\pgf@xb=\dimen154 +\pgf@yb=\dimen155 +\pgf@xc=\dimen156 +\pgf@yc=\dimen157 +\pgf@xd=\dimen158 +\pgf@yd=\dimen159 +\w@pgf@writea=\write3 +\r@pgf@reada=\read2 +\c@pgf@counta=\count197 +\c@pgf@countb=\count198 +\c@pgf@countc=\count199 +\c@pgf@countd=\count266 +\t@pgf@toka=\toks22 +\t@pgf@tokb=\toks23 +\t@pgf@tokc=\toks24 +\pgf@sys@id@count=\count267 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2021/05/15 v3.1.9a (3.1.9a) +) +Driver file for pgf: pgfsys-xetex.def +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-xetex.def +File: pgfsys-xetex.def 2021/05/15 v3.1.9a (3.1.9a) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvipdfmx.def +File: pgfsys-dvipdfmx.def 2021/05/15 v3.1.9a (3.1.9a) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +File: pgfsys-common-pdf.def 2021/05/15 v3.1.9a (3.1.9a) +) +\pgfsys@objnum=\count268 +))) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +File: pgfsyssoftpath.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgfsyssoftpath@smallbuffer@items=\count269 +\pgfsyssoftpath@bigbuffer@items=\count270 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +File: pgfsysprotocol.code.tex 2021/05/15 v3.1.9a (3.1.9a) +)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2021/05/15 v3.1.9a (3.1.9a) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen160 +\pgfmath@count=\count271 +\pgfmath@box=\box53 +\pgfmath@toks=\toks25 +\pgfmath@stack@operand=\toks26 +\pgfmath@stack@operation=\toks27 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex))) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count272 +)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +File: pgfcorepoints.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgf@picminx=\dimen161 +\pgf@picmaxx=\dimen162 +\pgf@picminy=\dimen163 +\pgf@picmaxy=\dimen164 +\pgf@pathminx=\dimen165 +\pgf@pathmaxx=\dimen166 +\pgf@pathminy=\dimen167 +\pgf@pathmaxy=\dimen168 +\pgf@xx=\dimen169 +\pgf@xy=\dimen170 +\pgf@yx=\dimen171 +\pgf@yy=\dimen172 +\pgf@zx=\dimen173 +\pgf@zy=\dimen174 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +File: pgfcorepathconstruct.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgf@path@lastx=\dimen175 +\pgf@path@lasty=\dimen176 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +File: pgfcorepathusage.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgf@shorten@end@additional=\dimen177 +\pgf@shorten@start@additional=\dimen178 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +File: pgfcorescopes.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgfpic=\box54 +\pgf@hbox=\box55 +\pgf@layerbox@main=\box56 +\pgf@picture@serial@count=\count273 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +File: pgfcoregraphicstate.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgflinewidth=\dimen179 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +File: pgfcoretransformations.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgf@pt@x=\dimen180 +\pgf@pt@y=\dimen181 +\pgf@pt@temp=\dimen182 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +File: pgfcorequick.code.tex 2021/05/15 v3.1.9a (3.1.9a) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +File: pgfcoreobjects.code.tex 2021/05/15 v3.1.9a (3.1.9a) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +File: pgfcorepathprocessing.code.tex 2021/05/15 v3.1.9a (3.1.9a) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +File: pgfcorearrows.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgfarrowsep=\dimen183 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +File: pgfcoreshade.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgf@max=\dimen184 +\pgf@sys@shading@range@num=\count274 +\pgf@shadingcount=\count275 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +File: pgfcoreimage.code.tex 2021/05/15 v3.1.9a (3.1.9a) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +File: pgfcoreexternal.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgfexternal@startupbox=\box57 +)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +File: pgfcorelayers.code.tex 2021/05/15 v3.1.9a (3.1.9a) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex +File: pgfcoretransparency.code.tex 2021/05/15 v3.1.9a (3.1.9a) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +File: pgfcorepatterns.code.tex 2021/05/15 v3.1.9a (3.1.9a) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +File: pgfcorerdf.code.tex 2021/05/15 v3.1.9a (3.1.9a) +))) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +File: pgfmoduleshapes.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgfnodeparttextbox=\box58 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +File: pgfmoduleplot.code.tex 2021/05/15 v3.1.9a (3.1.9a) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +Package: pgfcomp-version-0-65 2021/05/15 v3.1.9a (3.1.9a) +\pgf@nodesepstart=\dimen185 +\pgf@nodesepend=\dimen186 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +Package: pgfcomp-version-1-18 2021/05/15 v3.1.9a (3.1.9a) +)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/pgf/utilities/pgffor.sty (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/pgf/math/pgfmath.sty (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2021/05/15 v3.1.9a (3.1.9a) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen187 +\pgffor@skip=\dimen188 +\pgffor@stack=\toks28 +\pgffor@toks=\toks29 +)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +Package: tikz 2021/05/15 v3.1.9a (3.1.9a) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +File: pgflibraryplothandlers.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgf@plot@mark@count=\count276 +\pgfplotmarksize=\dimen189 +) +\tikz@lastx=\dimen190 +\tikz@lasty=\dimen191 +\tikz@lastxsaved=\dimen192 +\tikz@lastysaved=\dimen193 +\tikz@lastmovetox=\dimen194 +\tikz@lastmovetoy=\dimen195 +\tikzleveldistance=\dimen196 +\tikzsiblingdistance=\dimen197 +\tikz@figbox=\box59 +\tikz@figbox@bg=\box60 +\tikz@tempbox=\box61 +\tikz@tempbox@bg=\box62 +\tikztreelevel=\count277 +\tikznumberofchildren=\count278 +\tikznumberofcurrentchild=\count279 +\tikz@fig@count=\count280 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +File: pgfmodulematrix.code.tex 2021/05/15 v3.1.9a (3.1.9a) +\pgfmatrixcurrentrow=\count281 +\pgfmatrixcurrentcolumn=\count282 +\pgf@matrix@numberofcolumns=\count283 +) +\tikz@expandcount=\count284 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2021/05/15 v3.1.9a (3.1.9a) +))) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2022-06-20 v7.00s Hypertext links for LaTeX +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2022/02/03 v1.0f TeX engine tests +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/infwarerr/infwarerr.sty +Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode not found. +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/pdfescape/pdfescape.sty +Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/hycolor/hycolor.sty +Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/auxhook/auxhook.sty +Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2022-05-17 v2.50 Cross-referencing by name of section +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/refcount/refcount.sty +Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/kvoptions/kvoptions.sty +Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO) +)) +\c@section@level=\count285 +) +\@linkdim=\dimen198 +\Hy@linkcounter=\count286 +\Hy@pagecounter=\count287 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2022-06-20 v7.00s Hyperref: PDFDocEncoding definition (HO) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/intcalc/intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/etexcmds/etexcmds.sty +Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) +) +\Hy@SavedSpaceFactor=\count288 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/hyperref/puenc.def +File: puenc.def 2022-06-20 v7.00s Hyperref: PDF Unicode definition (HO) +) +Package hyperref Info: Hyper figures OFF on input line 4162. +Package hyperref Info: Link nesting OFF on input line 4167. +Package hyperref Info: Hyper index ON on input line 4170. +Package hyperref Info: Plain pages OFF on input line 4177. +Package hyperref Info: Backreferencing OFF on input line 4182. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4408. +\c@Hy@tempcnt=\count289 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip16 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4746. +\XeTeXLinkMargin=\dimen199 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/bitset/bitset.sty +Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO) +)) +\Fld@menulength=\count290 +\Field@Width=\dimen256 +\Fld@charsize=\dimen257 +Package hyperref Info: Hyper figures OFF on input line 6024. +Package hyperref Info: Link nesting OFF on input line 6029. +Package hyperref Info: Hyper index ON on input line 6032. +Package hyperref Info: backreferencing OFF on input line 6039. +Package hyperref Info: Link coloring OFF on input line 6044. +Package hyperref Info: Link coloring with OCG OFF on input line 6049. +Package hyperref Info: PDF/A mode OFF on input line 6054. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/base/atbegshi-ltx.sty +Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi +package with kernel methods +) +\Hy@abspage=\count291 +\c@Item=\count292 +\c@Hfootnote=\count293 +) +Package hyperref Info: Driver (autodetected): hxetex. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/hyperref/hxetex.def +File: hxetex.def 2022-06-20 v7.00s Hyperref driver for XeTeX +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/stringenc/stringenc.sty +Package: stringenc 2019/11/29 v1.12 Convert strings between diff. encodings (HO) +) +\pdfm@box=\box63 +\c@Hy@AnnotLevel=\count294 +\HyField@AnnotCount=\count295 +\Fld@listcount=\count296 +\c@bookmark@seq@number=\count297 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +Package: rerunfilecheck 2022-07-10 v1.10 Rerun checks for auxiliary files (HO) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/base/atveryend-ltx.sty +Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend package +with kernel methods +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 285. +) +\Hy@SectionHShift=\skip56 +) +Package hyperref Info: Option `colorlinks' set `true' on input line 12. +Package hyperref Info: Option `breaklinks' set `true' on input line 12. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2022/03/01 v3.6b Customizing captions (AR) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2022/03/17 v2.3b caption3 kernel (AR) +\caption@tempdima=\dimen258 +\captionmargin=\dimen259 +\caption@leftmargin=\dimen260 +\caption@rightmargin=\dimen261 +\caption@width=\dimen262 +\caption@indent=\dimen263 +\caption@parindent=\dimen264 +\caption@hangindent=\dimen265 +Package caption Info: Standard document class detected. +) +\c@caption@flags=\count298 +\c@continuedfloat=\count299 +Package caption Info: hyperref package is loaded. +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty +Package: tcolorbox 2022/06/24 version 5.1.1 text color boxes +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/tools/verbatim.sty +Package: verbatim 2020-07-07 v1.5u LaTeX2e package for verbatim enhancements +\every@verbatim=\toks30 +\verbatim@line=\toks31 +\verbatim@in@stream=\read3 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/environ/environ.sty +Package: environ 2014/05/04 v0.3 A new way to define environments +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/trimspaces/trimspaces.sty +Package: trimspaces 2009/09/17 v1.1 Trim spaces around a token list +) +\@envbody=\toks32 +) +\tcb@titlebox=\box64 +\tcb@upperbox=\box65 +\tcb@lowerbox=\box66 +\tcb@phantombox=\box67 +\c@tcbbreakpart=\count300 +\c@tcblayer=\count301 +\c@tcolorbox@number=\count302 +\tcb@temp=\box68 +\tcb@temp=\box69 +\tcb@temp=\box70 +\tcb@temp=\box71 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\@emptytoks=\toks33 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2022/04/08 v2.17n AMS math features +\@mathmargin=\skip57 +For additional information on amsmath, use the `?' option. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2021/08/26 v2.01 AMS text +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks34 +\ex@=\dimen266 +)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen267 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2022/04/08 v2.04 operator names +) +\inf@bad=\count303 +LaTeX Info: Redefining \frac on input line 234. +\uproot@=\count304 +\leftroot@=\count305 +LaTeX Info: Redefining \overline on input line 399. +LaTeX Info: Redefining \colon on input line 410. +\classnum@=\count306 +\DOTSCASE@=\count307 +LaTeX Info: Redefining \ldots on input line 496. +LaTeX Info: Redefining \dots on input line 499. +LaTeX Info: Redefining \cdots on input line 620. +\Mathstrutbox@=\box72 +\strutbox@=\box73 +LaTeX Info: Redefining \big on input line 722. +LaTeX Info: Redefining \Big on input line 723. +LaTeX Info: Redefining \bigg on input line 724. +LaTeX Info: Redefining \Bigg on input line 725. +\big@size=\dimen268 +LaTeX Font Info: Redeclaring font encoding OML on input line 743. +LaTeX Font Info: Redeclaring font encoding OMS on input line 744. +\macc@depth=\count308 +LaTeX Info: Redefining \bmod on input line 905. +LaTeX Info: Redefining \pmod on input line 910. +LaTeX Info: Redefining \smash on input line 940. +LaTeX Info: Redefining \relbar on input line 970. +LaTeX Info: Redefining \Relbar on input line 971. +\c@MaxMatrixCols=\count309 +\dotsspace@=\muskip17 +\c@parentequation=\count310 +\dspbrk@lvl=\count311 +\tag@help=\toks35 +\row@=\count312 +\column@=\count313 +\maxfields@=\count314 +\andhelp@=\toks36 +\eqnshift@=\dimen269 +\alignsep@=\dimen270 +\tagshift@=\dimen271 +\tagwidth@=\dimen272 +\totwidth@=\dimen273 +\lineht@=\dimen274 +\@envbody=\toks37 +\multlinegap=\skip58 +\multlinetaggap=\skip59 +\mathdisplay@stack=\toks38 +LaTeX Info: Redefining \[ on input line 2953. +LaTeX Info: Redefining \] on input line 2954. +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/iftex/ifxetex.sty +Package: ifxetex 2019/10/25 v0.7 ifxetex legacy package. Use iftex instead. +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/iftex/ifluatex.sty +Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead. +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/seqsplit/seqsplit.sty +Package: seqsplit 2006/08/07 v0.1 Splitting long sequences (DNA, RNA, proteins, etc.) +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/base/fixltx2e.sty +Package: fixltx2e 2016/12/29 v2.1a fixes to LaTeX (obsolete) +Applying: [2015/01/01] Old fixltx2e package on input line 46. + +Package fixltx2e Warning: fixltx2e is not required with releases after 2015 +(fixltx2e) All fixes are now in the LaTeX kernel. +(fixltx2e) See the latexrelease package for details. + +Already applied: [0000/00/00] Old fixltx2e package on input line 53. +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/biblatex/biblatex.sty +Package: biblatex 2022/07/12 v3.18b programmable bibliographies (PK/MW) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/logreq/logreq.sty +Package: logreq 2010/08/04 v1.0 xml request logger +\lrq@indent=\count315 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/logreq/logreq.def +File: logreq.def 2010/08/04 v1.0 logreq spec v1.0 +)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2022/04/13 v1.1d Standard LaTeX ifthen package (DPC) +) +\c@tabx@nest=\count316 +\c@listtotal=\count317 +\c@listcount=\count318 +\c@liststart=\count319 +\c@liststop=\count320 +\c@citecount=\count321 +\c@citetotal=\count322 +\c@multicitecount=\count323 +\c@multicitetotal=\count324 +\c@instcount=\count325 +\c@maxnames=\count326 +\c@minnames=\count327 +\c@maxitems=\count328 +\c@minitems=\count329 +\c@citecounter=\count330 +\c@maxcitecounter=\count331 +\c@savedcitecounter=\count332 +\c@uniquelist=\count333 +\c@uniquename=\count334 +\c@refsection=\count335 +\c@refsegment=\count336 +\c@maxextratitle=\count337 +\c@maxextratitleyear=\count338 +\c@maxextraname=\count339 +\c@maxextradate=\count340 +\c@maxextraalpha=\count341 +\c@abbrvpenalty=\count342 +\c@highnamepenalty=\count343 +\c@lownamepenalty=\count344 +\c@maxparens=\count345 +\c@parenlevel=\count346 +\blx@tempcnta=\count347 +\blx@tempcntb=\count348 +\blx@tempcntc=\count349 +\c@blx@maxsection=\count350 +\blx@maxsegment@0=\count351 +\blx@notetype=\count352 +\blx@parenlevel@text=\count353 +\blx@parenlevel@foot=\count354 +\blx@sectionciteorder@0=\count355 +\blx@sectionciteorderinternal@0=\count356 +\blx@entrysetcounter=\count357 +\blx@biblioinstance=\count358 +\labelnumberwidth=\skip60 +\labelalphawidth=\skip61 +\biblabelsep=\skip62 +\bibitemsep=\skip63 +\bibnamesep=\skip64 +\bibinitsep=\skip65 +\bibparsep=\skip66 +\bibhang=\skip67 +\blx@bcfin=\read4 +\blx@bcfout=\write4 +\blx@langwohyphens=\language3 +\c@mincomprange=\count359 +\c@maxcomprange=\count360 +\c@mincompwidth=\count361 +Package biblatex Info: Trying to load biblatex default data model... +Package biblatex Info: ... file 'blx-dm.def' found. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/biblatex/blx-dm.def +File: blx-dm.def 2022/07/12 v3.18b biblatex localization (PK/MW) +) +Package biblatex Info: Trying to load biblatex custom data model... +Package biblatex Info: ... file 'biblatex-dm.cfg' not found. +\c@afterword=\count362 +\c@savedafterword=\count363 +\c@annotator=\count364 +\c@savedannotator=\count365 +\c@author=\count366 +\c@savedauthor=\count367 +\c@bookauthor=\count368 +\c@savedbookauthor=\count369 +\c@commentator=\count370 +\c@savedcommentator=\count371 +\c@editor=\count372 +\c@savededitor=\count373 +\c@editora=\count374 +\c@savededitora=\count375 +\c@editorb=\count376 +\c@savededitorb=\count377 +\c@editorc=\count378 +\c@savededitorc=\count379 +\c@foreword=\count380 +\c@savedforeword=\count381 +\c@holder=\count382 +\c@savedholder=\count383 +\c@introduction=\count384 +\c@savedintroduction=\count385 +\c@namea=\count386 +\c@savednamea=\count387 +\c@nameb=\count388 +\c@savednameb=\count389 +\c@namec=\count390 +\c@savednamec=\count391 +\c@translator=\count392 +\c@savedtranslator=\count393 +\c@shortauthor=\count394 +\c@savedshortauthor=\count395 +\c@shorteditor=\count396 +\c@savedshorteditor=\count397 +\c@labelname=\count398 +\c@savedlabelname=\count399 +\c@institution=\count400 +\c@savedinstitution=\count401 +\c@lista=\count402 +\c@savedlista=\count403 +\c@listb=\count404 +\c@savedlistb=\count405 +\c@listc=\count406 +\c@savedlistc=\count407 +\c@listd=\count408 +\c@savedlistd=\count409 +\c@liste=\count410 +\c@savedliste=\count411 +\c@listf=\count412 +\c@savedlistf=\count413 +\c@location=\count414 +\c@savedlocation=\count415 +\c@organization=\count416 +\c@savedorganization=\count417 +\c@origlocation=\count418 +\c@savedoriglocation=\count419 +\c@origpublisher=\count420 +\c@savedorigpublisher=\count421 +\c@publisher=\count422 +\c@savedpublisher=\count423 +\c@language=\count424 +\c@savedlanguage=\count425 +\c@origlanguage=\count426 +\c@savedoriglanguage=\count427 +\c@pageref=\count428 +\c@savedpageref=\count429 +\shorthandwidth=\skip68 +\shortjournalwidth=\skip69 +\shortserieswidth=\skip70 +\shorttitlewidth=\skip71 +\shortauthorwidth=\skip72 +\shorteditorwidth=\skip73 +\locallabelnumberwidth=\skip74 +\locallabelalphawidth=\skip75 +\localshorthandwidth=\skip76 +\localshortjournalwidth=\skip77 +\localshortserieswidth=\skip78 +\localshorttitlewidth=\skip79 +\localshortauthorwidth=\skip80 +\localshorteditorwidth=\skip81 +Package biblatex Info: Trying to load enhanced support for Unicode engines... +Package biblatex Info: ... file 'blx-unicode.def' found. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/biblatex/blx-unicode.def) +Package biblatex Info: Trying to load compatibility code... +Package biblatex Info: ... file 'blx-compat.def' found. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/biblatex/blx-compat.def +File: blx-compat.def 2022/07/12 v3.18b biblatex compatibility (PK/MW) +) +Package biblatex Info: Trying to load generic definitions... +Package biblatex Info: ... file 'biblatex.def' found. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/biblatex/biblatex.def +File: biblatex.def 2022/07/12 v3.18b biblatex compatibility (PK/MW) +\c@textcitecount=\count430 +\c@textcitetotal=\count431 +\c@textcitemaxnames=\count432 +\c@biburlbigbreakpenalty=\count433 +\c@biburlbreakpenalty=\count434 +\c@biburlnumpenalty=\count435 +\c@biburlucpenalty=\count436 +\c@biburllcpenalty=\count437 +\biburlbigskip=\muskip18 +\biburlnumskip=\muskip19 +\biburlucskip=\muskip20 +\biburllcskip=\muskip21 +\c@smartand=\count438 +) +Package biblatex Info: Trying to load bibliography style 'numeric'... +Package biblatex Info: ... file 'numeric.bbx' found. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx +File: numeric.bbx 2022/07/12 v3.18b biblatex bibliography style (PK/MW) +Package biblatex Info: Trying to load bibliography style 'standard'... +Package biblatex Info: ... file 'standard.bbx' found. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/biblatex/bbx/standard.bbx +File: standard.bbx 2022/07/12 v3.18b biblatex bibliography style (PK/MW) +\c@bbx:relatedcount=\count439 +\c@bbx:relatedtotal=\count440 +)) +Package biblatex Info: Trying to load citation style 'numeric'... +Package biblatex Info: ... file 'numeric.cbx' found. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx +File: numeric.cbx 2022/07/12 v3.18b biblatex citation style (PK/MW) +Package biblatex Info: Redefining '\cite'. +Package biblatex Info: Redefining '\parencite'. +Package biblatex Info: Redefining '\footcite'. +Package biblatex Info: Redefining '\footcitetext'. +Package biblatex Info: Redefining '\smartcite'. +Package biblatex Info: Redefining '\supercite'. +Package biblatex Info: Redefining '\textcite'. +Package biblatex Info: Redefining '\textcites'. +Package biblatex Info: Redefining '\cites'. +Package biblatex Info: Redefining '\parencites'. +Package biblatex Info: Redefining '\smartcites'. +) +Package biblatex Info: Trying to load configuration file... +Package biblatex Info: ... file 'biblatex.cfg' found. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/biblatex/biblatex.cfg +File: biblatex.cfg +) +Package biblatex Info: XeTeX detected. +(biblatex) Assuming input encoding 'utf8'. +Package biblatex Info: Document encoding is UTF8 .... +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/l3kernel/expl3.sty +Package: expl3 2022-07-15 L3 programming layer (loader) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/l3backend/l3backend-xetex.def +File: l3backend-xetex.def 2022-07-01 L3 backend support: XeTeX +\g__graphics_track_int=\count441 +\l__pdf_internal_box=\box74 +\g__pdf_backend_object_int=\count442 +\g__pdf_backend_annotation_int=\count443 +\g__pdf_backend_link_int=\count444 +)) +Package biblatex Info: ... and expl3 +(biblatex) 2022-07-15 L3 programming layer (loader) +(biblatex) is new enough (at least 2020/04/06), +(biblatex) setting 'casechanger=expl3'. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +Package: xparse 2022-06-22 L3 Experimental document command parser +) +Package: blx-case-expl3 2022/07/12 v3.18b expl3 case changing code for biblatex +)) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2020/01/02 v5.9 Page Geometry +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/iftex/ifvtex.sty +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. +) +\Gm@cnth=\count445 +\Gm@cntv=\count446 +\c@Gm@tempcnt=\count447 +\Gm@bindingoffset=\dimen275 +\Gm@wd@mp=\dimen276 +\Gm@odd@mp=\dimen277 +\Gm@even@mp=\dimen278 +\Gm@layoutwidth=\dimen279 +\Gm@layoutheight=\dimen280 +\Gm@layouthoffset=\dimen281 +\Gm@layoutvoffset=\dimen282 +\Gm@dimlist=\toks39 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +Package: fancyhdr 2022/05/18 v4.0.3 Extensive control of page headers and footers +\f@nch@headwidth=\skip82 +\f@nch@O@elh=\skip83 +\f@nch@O@erh=\skip84 +\f@nch@O@olh=\skip85 +\f@nch@O@orh=\skip86 +\f@nch@O@elf=\skip87 +\f@nch@O@erf=\skip88 +\f@nch@O@olf=\skip89 +\f@nch@O@orf=\skip90 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/xelatex/mathspec/mathspec.sty +Package: mathspec 2016/12/22 v0.2b LaTeX Package (Mathematics font selection for XeLaTeX) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/fontspec/fontspec.sty +Package: fontspec 2022/01/15 v2.8a Font selection for XeLaTeX and LuaLaTeX +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty +Package: fontspec-xetex 2022/01/15 v2.8a Font selection for XeLaTeX and LuaLaTeX +\l__fontspec_script_int=\count448 +\l__fontspec_language_int=\count449 +\l__fontspec_strnum_int=\count450 +\l__fontspec_tmp_int=\count451 +\l__fontspec_tmpa_int=\count452 +\l__fontspec_tmpb_int=\count453 +\l__fontspec_tmpc_int=\count454 +\l__fontspec_em_int=\count455 +\l__fontspec_emdef_int=\count456 +\l__fontspec_strong_int=\count457 +\l__fontspec_strongdef_int=\count458 +\l__fontspec_tmpa_dim=\dimen283 +\l__fontspec_tmpb_dim=\dimen284 +\l__fontspec_tmpc_dim=\dimen285 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/fontspec/fontspec.cfg))) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2022/06/16 v2.9 package option processing (HA) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/xkeyval/xkeyval.tex (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks40 +\XKV@tempa@toks=\toks41 +) +\XKV@depth=\count459 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +)) +\c@eu@=\count460 +\c@eu@i=\count461 +\c@mkern=\count462 +) +Package hyperref Info: Option `unicode' set `true' on input line 151. +Package hyperref Info: Option `breaklinks' set `true' on input line 151. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/grffile/grffile.sty +Package: grffile 2019/11/11 v2.1 Extended file name support for graphics (legacy) +Package grffile Info: This package is an empty stub for compatibility on input line 40. +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/parskip/parskip.sty +Package: parskip 2021-03-14 v2.0h non-zero parskip adjustments +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +Package: fancyvrb 2022/06/06 4.5 verbatim text (tvz,hv) +\FV@CodeLineNo=\count463 +\FV@InFile=\read5 +\FV@TabBox=\box75 +\c@FancyVerbLine=\count464 +\FV@StepNumber=\count465 +\FV@OutFile=\write5 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/framed/framed.sty +Package: framed 2011/10/22 v 0.96: framed or shaded text with page breaks +\OuterFrameSep=\skip91 +\fb@frw=\dimen286 +\fb@frh=\dimen287 +\FrameRule=\dimen288 +\FrameSep=\dimen289 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/tools/longtable.sty +Package: longtable 2021-09-01 v4.17 Multi-page Table package (DPC) +\LTleft=\skip92 +\LTright=\skip93 +\LTpre=\skip94 +\LTpost=\skip95 +\LTchunksize=\count466 +\LTcapwidth=\dimen290 +\LT@head=\box76 +\LT@firsthead=\box77 +\LT@foot=\box78 +\LT@lastfoot=\box79 +\LT@gbox=\box80 +\LT@cols=\count467 +\LT@rows=\count468 +\c@LT@tables=\count469 +\c@LT@chunks=\count470 +\LT@p@ftn=\toks42 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/booktabs/booktabs.sty +Package: booktabs 2020/01/12 v1.61803398 Publication quality tables +\heavyrulewidth=\dimen291 +\lightrulewidth=\dimen292 +\cmidrulewidth=\dimen293 +\belowrulesep=\dimen294 +\belowbottomsep=\dimen295 +\aboverulesep=\dimen296 +\abovetopsep=\dimen297 +\cmidrulesep=\dimen298 +\cmidrulekern=\dimen299 +\defaultaddspace=\dimen300 +\@cmidla=\count471 +\@cmidlb=\count472 +\@aboverulesep=\dimen301 +\@belowrulesep=\dimen302 +\@thisruleclass=\count473 +\@lastruleclass=\count474 +\@thisrulewidth=\dimen303 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/tools/array.sty +Package: array 2022/03/10 v2.5f Tabular extension package (FMi) +\col@sep=\dimen304 +\ar@mcellbox=\box81 +\extrarowheight=\dimen305 +\NC@list=\toks43 +\extratabsurround=\skip96 +\backup@length=\skip97 +\ar@cellbox=\box82 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/mdwtools/footnote.sty +Package: footnote 1997/01/28 1.13 Save footnotes around boxes +\fn@notes=\box83 +\fn@width=\dimen306 +) +\cslhangindent=\skip98 +\csllabelwidth=\skip99 +\cslentryspacingunit=\skip100 +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/multirow/multirow.sty +Package: multirow 2021/03/15 v2.8 Span multiple rows of a table +\multirow@colwidth=\skip101 +\multirow@cntb=\count475 +\multirow@dima=\skip102 +\bigstrutjot=\dimen307 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/wrapfig/wrapfig.sty +\wrapoverhang=\dimen308 +\WF@size=\dimen309 +\c@WF@wrappedlines=\count476 +\WF@box=\box84 +\WF@everypar=\toks44 +Package: wrapfig 2003/01/31 v 3.6 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count477 +\float@exts=\toks45 +\float@box=\box85 +\@float@everytoks=\toks46 +\@floatcapt=\box86 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/colortbl/colortbl.sty +Package: colortbl 2020/01/04 v1.0e Color table columns (DPC) +\everycr=\toks47 +\minrowclearance=\skip103 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/pdflscape/pdflscape.sty +Package: pdflscape 2019/12/05 v0.12 Display of landscape pages in PDF (HO) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/graphics/lscape.sty +Package: lscape 2020/05/28 v3.02 Landscape Pages (DPC) +) +Package pdflscape Info: Auto-detected driver: dvipdfm (xetex) on input line 98. +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/tabu/tabu.sty +Package: tabu 2019/01/11 v2.9 - flexible LaTeX tabulars (FC+tabu-fixed) +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/varwidth/varwidth.sty +Package: varwidth 2009/03/30 ver 0.92; Variable-width minipages +\@vwid@box=\box87 +\sift@deathcycles=\count478 +\@vwid@loff=\dimen310 +\@vwid@roff=\dimen311 +) +\c@taburow=\count479 +\tabu@nbcols=\count480 +\tabu@cnt=\count481 +\tabu@Xcol=\count482 +\tabu@alloc=\count483 +\tabu@nested=\count484 +\tabu@target=\dimen312 +\tabu@spreadtarget=\dimen313 +\tabu@naturalX=\dimen314 +\tabucolX=\dimen315 +\tabu@Xsum=\dimen316 +\extrarowdepth=\dimen317 +\abovetabulinesep=\dimen318 +\belowtabulinesep=\dimen319 +\tabustrutrule=\dimen320 +\tabu@thebody=\toks48 +\tabu@footnotes=\toks49 +\tabu@box=\box88 +\tabu@arstrutbox=\box89 +\tabu@hleads=\box90 +\tabu@vleads=\box91 +\tabu@cellskip=\skip104 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/threeparttable/threeparttable.sty +Package: threeparttable 2003/06/13 v 3.0 +\@tempboxb=\box92 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/threeparttablex/threeparttablex.sty +Package: threeparttablex 2013/07/23 v0.3 by daleif +\TPTL@width=\skip105 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/generic/ulem/ulem.sty +\UL@box=\box93 +\UL@hyphenbox=\box94 +\UL@skip=\skip106 +\UL@hook=\toks50 +\UL@height=\dimen321 +\UL@pe=\count485 +\UL@pixel=\dimen322 +\ULC@box=\box95 +Package: ulem 2019/11/18 +\ULdepth=\dimen323 +) (c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/makecell/makecell.sty +Package: makecell 2009/08/03 V0.1e Managing of Tab Column Heads and Cells +\rotheadsize=\dimen324 +\c@nlinenum=\count486 +\TeXr@lab=\toks51 +) +\@quotelevel=\count487 +\@quotereset=\count488 +(./paper.aux) +\openout1 = `paper.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 305. +LaTeX Font Info: ... okay on input line 305. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 305. +LaTeX Font Info: ... okay on input line 305. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 305. +LaTeX Font Info: ... okay on input line 305. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 305. +LaTeX Font Info: ... okay on input line 305. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 305. +LaTeX Font Info: Trying to load font information for TS1+cmr on input line 305. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 2019/12/16 v2.5j Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 305. +LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 305. +LaTeX Font Info: ... okay on input line 305. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 305. +LaTeX Font Info: ... okay on input line 305. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 305. +LaTeX Font Info: ... okay on input line 305. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 305. +LaTeX Font Info: ... okay on input line 305. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 305. +LaTeX Font Info: ... okay on input line 305. +Package hyperref Info: Link coloring ON on input line 305. +(./paper.out) (./paper.out) +\@outlinefile=\write6 +\openout6 = `paper.out'. + +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: float package is loaded. +Package caption Info: longtable package is loaded. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/caption/ltcaption.sty +Package: ltcaption 2021/01/08 v1.4c longtable captions (AR) +) +Package caption Info: threeparttable package is loaded. +Package caption Info: wrapfig package is loaded. +Package caption Info: End \AtBeginDocument code. +Package biblatex Info: Trying to load language 'english'... +Package biblatex Info: ... file 'english.lbx' found. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/biblatex/lbx/english.lbx +File: english.lbx 2022/07/12 v3.18b biblatex localization (PK/MW) +) +Package biblatex Info: XeTeX detected. +(biblatex) Assuming input encoding 'utf8'. +Package biblatex Info: Automatic encoding selection. +(biblatex) Assuming data encoding 'utf8'. +\openout4 = `paper.bcf'. + +Package biblatex Info: Trying to load bibliographic data... +Package biblatex Info: ... file 'paper.bbl' not found. +No file paper.bbl. +Package biblatex Info: Reference section=0 on input line 305. +Package biblatex Info: Reference segment=0 on input line 305. +*geometry* driver: auto-detecting +*geometry* detected driver: xetex +*geometry* verbose mode - [ preamble ] result: +* driver: xetex +* paper: a4paper +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: includemp +* h-part:(L,W,R)=(28.45274pt, 526.376pt, 42.67912pt) +* v-part:(T,H,B)=(99.58464pt, 660.10394pt, 85.35826pt) +* \paperwidth=597.50787pt +* \paperheight=845.04684pt +* \textwidth=387.33861pt +* \textheight=660.10394pt +* \oddsidemargin=95.22015pt +* \evensidemargin=95.22015pt +* \topmargin=-60.28131pt +* \headheight=62.59596pt +* \headsep=25.0pt +* \topskip=10.0pt +* \footskip=30.0pt +* \marginparwidth=128.0374pt +* \marginparsep=11.0pt +* \columnsep=10.0pt +* \skip\footins=9.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemargintrue +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: Trying to load font information for U+msa on input line 306. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Trying to load font information for U+msb on input line 306. +(c:/Users/etienne/AppData/Roaming/TinyTeX/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) + +Package hyperref Warning: Suppressing link with empty target on input line 332. + + +Package hyperref Warning: Suppressing link with empty target on input line 332. + + +Package hyperref Warning: Suppressing link with empty target on input line 332. + +File: C:/Users/etienne/AppData/Local/R/win-library/4.2/rticles/rmarkdown/templates/joss/resources/JOSS-logo.png Graphic file (type bmp) + + +Package fancyhdr Warning: \headheight is too small (62.59596pt): +(fancyhdr) Make it at least 63.55022pt, for example: +(fancyhdr) \setlength{\headheight}{63.55022pt}. +(fancyhdr) You might also make \topmargin smaller to compensate: +(fancyhdr) \addtolength{\topmargin}{-0.95425pt}. + +LaTeX Font Info: Font shape `TU/lmss/m/it' in size <8> not available +(Font) Font shape `TU/lmss/m/sl' tried instead on input line 394. +[1 + +] +LaTeX Font Info: Font shape `TU/lmss/m/it' in size <9> not available +(Font) Font shape `TU/lmss/m/sl' tried instead on input line 412. +File: C:/Users/etienne/AppData/Local/R/win-library/4.2/rticles/rmarkdown/templates/joss/resources/JOSS-logo.png Graphic file (type bmp) + + +Package fancyhdr Warning: \headheight is too small (62.59596pt): +(fancyhdr) Make it at least 63.55022pt, for example: +(fancyhdr) \setlength{\headheight}{63.55022pt}. +(fancyhdr) You might also make \topmargin smaller to compensate: +(fancyhdr) \addtolength{\topmargin}{-0.95425pt}. + +[2] +Underfull \hbox (badness 1448) in paragraph at lines 527--531 +\TU/lmr/m/n/10 The workhorse function to get a comprehensive summary of data properties is + [] + +File: C:/Users/etienne/AppData/Local/R/win-library/4.2/rticles/rmarkdown/templates/joss/resources/JOSS-logo.png Graphic file (type bmp) + + +Package fancyhdr Warning: \headheight is too small (62.59596pt): +(fancyhdr) Make it at least 63.55022pt, for example: +(fancyhdr) \setlength{\headheight}{63.55022pt}. +(fancyhdr) You might also make \topmargin smaller to compensate: +(fancyhdr) \addtolength{\topmargin}{-0.95425pt}. + +[3] +File: C:/Users/etienne/AppData/Local/R/win-library/4.2/rticles/rmarkdown/templates/joss/resources/JOSS-logo.png Graphic file (type bmp) + + +Package fancyhdr Warning: \headheight is too small (62.59596pt): +(fancyhdr) Make it at least 63.55022pt, for example: +(fancyhdr) \setlength{\headheight}{63.55022pt}. +(fancyhdr) You might also make \topmargin smaller to compensate: +(fancyhdr) \addtolength{\topmargin}{-0.95425pt}. + +[4] +File: C:/Users/etienne/AppData/Local/R/win-library/4.2/rticles/rmarkdown/templates/joss/resources/JOSS-logo.png Graphic file (type bmp) + + +Package fancyhdr Warning: \headheight is too small (62.59596pt): +(fancyhdr) Make it at least 63.55022pt, for example: +(fancyhdr) \setlength{\headheight}{63.55022pt}. +(fancyhdr) You might also make \topmargin smaller to compensate: +(fancyhdr) \addtolength{\topmargin}{-0.95425pt}. + +[5] (./paper.aux) +Package rerunfilecheck Info: File `paper.out' has not changed. +(rerunfilecheck) Checksum: 0850A7CB475E98F840117F25595A96C0;1161. +Package logreq Info: Writing requests to 'paper.run.xml'. +\openout1 = `paper.run.xml'. + + ) +Here is how much of TeX's memory you used: + 36691 strings out of 477864 + 753565 string characters out of 5845234 + 1522396 words of memory out of 5000000 + 57035 multiletter control sequences out of 15000+600000 + 477790 words of font info for 84 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 84i,12n,81p,1194b,848s stack positions out of 10000i,1000n,20000p,200000b,200000s + +Output written on paper.pdf (5 pages). diff --git a/paper/paper.md b/paper/paper.md new file mode 100644 index 000000000..1081fc560 --- /dev/null +++ b/paper/paper.md @@ -0,0 +1,197 @@ +--- +title: "datawizard: An R Package for Easy Data Preparation and Statistical Transformations" +tags: + - R + - easystats +authors: +- affiliation: 1 + name: Indrajeet Patil + orcid: 0000-0003-1995-6531 +- affiliation: 2 + name: Dominique Makowski + orcid: 0000-0001-5375-9967 +- affiliation: 3 + name: Mattan S. Ben-Shachar + orcid: 0000-0002-4287-4801 +- affiliation: 4 + name: Brenton M. Wiernik^[Brenton Wiernik is currently an independent researcher and Research Scientist at Meta, Demography and Survey Science. The current work was done in an independent capacity.] + orcid: 0000-0001-9560-6336 +- affiliation: 5 + name: Etienne Bacher + orcid: 0000-0002-9271-5075 +- affiliation: 6 + name: Daniel Lüdecke + orcid: 0000-0002-8895-3206 + +affiliations: +- index: 1 + name: esqLABS GmbH, Germany +- index: 2 + name: Nanyang Technological University, Singapore +- index: 3 + name: Ben-Gurion University of the Negev, Israel +- index: 4 + name: Independent Researcher +- index: 5 + name: Luxembourg Institute of Socio-Economic Research (LISER), Luxembourg +- index: 6 + name: University Medical Center Hamburg-Eppendorf, Germany + +date: "2022-07-27" +bibliography: paper.bib +output: rticles::joss_article +csl: apa.csl +journal: JOSS +link-citations: yes +--- + + + +# Summary + +The `{datawizard}` package for the R programming language [@base2021] provides a lightweight toolbox to assist in keys steps involved in any data analysis workflow: (1) wrangling the raw data to get it in the needed form, (2) applying preprocessing steps and statistical transformations, and (3) conducting reasonableness checks to ensure transformed data are high quality. Therefore, it can be a valuable tool for R users and developers looking for a lightweight option for data preparation. + +# Statement of Need + +The `{datawizard}` package is part of `{easystats}`, a collection of R packages designed to make statistical analysis easier (@Ben-Shachar2020, @Lüdecke2020parameters, @Lüdecke2020performance, @Lüdecke2021see, @Lüdecke2019, @Makowski2019, @Makowski2020). As this ecosystem follows a "0-external-hard-dependency" policy, a base R data manipulation package that relies only on base R needed to be created. In effect, `{datawizard}` provides data processing backend for this entire ecosystem. +In addition to its usefulness to the `{easystats}` ecosystem, it also provides *an* option for R users and package developers if they wish to keep their (recursive) dependency weight to a minimum (for other options, see @Dowle2021, @Eastwood2021, etc.). + +Because `{datawizard}` is also meant to be used and adopted easily by a wide range of users, its workflow and syntax are designed to be similar to `{tidyverse}` (@Wickham2019), a widely used ecosystem of R packages. Thus, users familiar with the `{tidyverse}` can easily translate their knowledge and make full usage of `{datawizard}`. + +In addition to being a lightweight solution to clean messy data, `{datawizard}` also provides helpers for the other important step of data analysis: applying statistical transformations to the cleaned data while setting up statistical models. This includes various types of data standardization, normalization, rank-transformation, and adjustment. These transformations, although widely used, are not currently collectively implemented in a package in the R ecosystem, so `{datawizard}` can help new R users in finding the transformation they need. + +Lastly, `{datawizard}` also provides a toolbox to create a detailed profile of data properties. This is a common step in data analysis, but it is not available in base R or many modeling packages, so its inclusion makes `{datawizard}` a one-stop-shop for data preparation tasks. + +# Features + +## Data Preparation + +The raw data is rarely in a state that it can be directly fed into a statistical model. It often needs to be modified in various ways. For example, columns need to be renamed, certain portions of the data need to be filtered out, reshape data, data scattered across multiple tables needs to be joined, etc. + +`{datawizard}` provides various functions for cleaning and preparing data (see Table 1). + +| Function | Operation | +| :--------------- | :------------------------------------ | +| `data_filter()` | to select only certain *observations* | +| `data_select()` | to select only a few *variables* | +| `data_extract()` | to extract a single *variable* | +| `data_rename()` | to rename variables | +| `data_to_long()` | to convert data from wide to long | +| `data_to_wide()` | to convert data from long to wide | +| `data_join()` | to join two data frames | +| ... | ... | + +Table: The table below lists a few key functions offered by *datawizard* for data wrangling. To see the full list, see the package website: + +We will look at one example function that converts data in wide format to tidy/long format: + + +```r +stocks <- data.frame( + time = as.Date('2009-01-01') + 0:4, + X = rnorm(5, 0, 1), + Y = rnorm(5, 0, 2) +) + +stocks +#> time X Y +#> 1 2009-01-01 0.129726039 0.3877105 +#> 2 2009-01-02 0.007121257 2.4642473 +#> 3 2009-01-03 -1.208297157 -0.2287426 +#> 4 2009-01-04 0.965780713 -0.1783209 +#> 5 2009-01-05 -0.940626593 -2.7937661 + +data_to_long( + stocks, + select = -c("time"), + names_to = "stock", + values_to = "price" +) +#> time stock price +#> 1 2009-01-01 X 0.129726039 +#> 2 2009-01-01 Y 0.387710522 +#> 3 2009-01-02 X 0.007121257 +#> 4 2009-01-02 Y 2.464247305 +#> 5 2009-01-03 X -1.208297157 +#> 6 2009-01-03 Y -0.228742591 +#> 7 2009-01-04 X 0.965780713 +#> 8 2009-01-04 Y -0.178320881 +#> 9 2009-01-05 X -0.940626593 +#> 10 2009-01-05 Y -2.793766068 +``` + +## Statistical Transformations + +Even after getting the raw data in the needed format, we may need to transform certain variables further to meet requirements imposed by a statistical test. + +`{datawizard}` provides a rich collection of such functions for transforming variables (see Table 2). + +| Function | Operation | +| :---------------- | :------------------------------------------- | +| `standardize()` | to center and scale data | +| `normalize()` | to scale variables to 0-1 range | +| `adjust()` | to adjust data for effect of other variables | +| `slide()` | to shift numeric value range | +| `ranktransform()` | to convert numeric values to integer ranks | +| ... | ... | + +Table: The table below lists a few key functions offered by *datawizard* for data transformations. To see the full list, see the package website: + +We will look at one example function that standardizes (i.e. centers and scales) data so that it can be expressed in terms of standard deviation: + + +```r +d <- data.frame( + a = c(-2, -1, 0, 1, 2), + b = c(3, 4, 5, 6, 7) +) + +standardize(d, center = c(3, 4), scale = c(2, 4)) +#> a b +#> 1 -2.5 -0.25 +#> 2 -2.0 0.00 +#> 3 -1.5 0.25 +#> 4 -1.0 0.50 +#> 5 -0.5 0.75 +``` + +## Data Properties + +The workhorse function to get a comprehensive summary of data properties is `describe_distribution()`, which combines a set of indices (e.g., measures of centrality, dispersion, range, skewness, kurtosis, etc.) computed by other functions in `{datawizard}`. + + +```r +describe_distribution(mtcars) +``` + +\begin{table} +\centering +\resizebox{\linewidth}{!}{ +\begin{tabular}[t]{lrrrrrrrrr} +\toprule +Variable & Mean & SD & IQR & Min & Max & Skewness & Kurtosis & n & n\_Missing\\ +\midrule +mpg & 20.091 & 6.027 & 7.53 & 10.40 & 33.90 & 0.672 & -0.022 & 32 & 0\\ +cyl & 6.188 & 1.786 & 4.00 & 4.00 & 8.00 & -0.192 & -1.763 & 32 & 0\\ +disp & 230.722 & 123.939 & 221.53 & 71.10 & 472.00 & 0.420 & -1.068 & 32 & 0\\ +hp & 146.688 & 68.563 & 84.50 & 52.00 & 335.00 & 0.799 & 0.275 & 32 & 0\\ +drat & 3.597 & 0.535 & 0.84 & 2.76 & 4.93 & 0.293 & -0.450 & 32 & 0\\ +wt & 3.217 & 0.978 & 1.19 & 1.51 & 5.42 & 0.466 & 0.417 & 32 & 0\\ +qsec & 17.849 & 1.787 & 2.02 & 14.50 & 22.90 & 0.406 & 0.865 & 32 & 0\\ +vs & 0.438 & 0.504 & 1.00 & 0.00 & 1.00 & 0.265 & -2.063 & 32 & 0\\ +am & 0.406 & 0.499 & 1.00 & 0.00 & 1.00 & 0.401 & -1.967 & 32 & 0\\ +gear & 3.688 & 0.738 & 1.00 & 3.00 & 5.00 & 0.582 & -0.895 & 32 & 0\\ +carb & 2.812 & 1.615 & 2.00 & 1.00 & 8.00 & 1.157 & 2.020 & 32 & 0\\ +\bottomrule +\end{tabular}} +\end{table} + +# Licensing and Availability + +`{datawizard}` is licensed under the GNU General Public License (v3.0), with all source code openly developed and stored at GitHub (), along with a corresponding issue tracker for bug reporting and feature enhancements. In the spirit of honest and open science, we encourage requests, tips for fixes, feature updates, as well as general questions and concerns via direct interaction with contributors and developers. + +# Acknowledgments + +`{datawizard}` is part of the collaborative [*easystats*](https://github.com/easystats/easystats) ecosystem. Thus, we thank the [members of easystats](https://github.com/orgs/easystats/people) as well as the users. + +# References diff --git a/paper/paper.pdf b/paper/paper.pdf new file mode 100644 index 000000000..180df9f1c Binary files /dev/null and b/paper/paper.pdf differ