name: title class: left bottom hide-count <!-- Title Slide --> <!-- cassette css credit: https://codepen.io/wangchristy/pen/EjdOzK --> <link href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> <div class="fixedContainer"> <div class="cassette-top"> <div class="cassette-inner-1"> <ul class="rainbow-strips"> <li class="purple"> </li> <li class="red"> </li> <li class="orange"> </li> <li class="green"> </li> </ul> <div class="cassette-inner-2"> <div class="wheel-left"> <div class="wheel-inner"> <i class="fa fa-cog fa-spin"></i> </div> </div> <div class="center-box"> </div> <div class="wheel-right"> <div class="wheel-inner"> <i class="fa fa-cog fa-spin"></i> </div> </div> </div> </div> </div> <div class="cassette-bottom"> </div> </div> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Mansalva"> .talk-meta[ .talk-title-custom[ # Secret tRacks R packages/functions you didn't know you were waiting for ] .talk-author[ Travis Gerke, ScD<br> .moffitt-gray[.small[.blue-medium[Moffitt Cancer Center ].blue[ :: ].blue-light[Health Informatics]]] ] .talk-date.moffitt-gray[ April 16, 2021 ] ] <style type="text/css"> /* Define title slide image or logo here */ .talk-logo { width: 400px; height: 750px; position: absolute; top: 6%; right: 7%; /* background-image: url('img/r4ds-cover.png'); */ background-size: contain; background-repeat: no-repeat; background-position: contain; } </style> --- ### Why this talk? > I believe every time I am in meeting with Travis, he mentions R packages to analyze & visualize data, create fancy presentations, etc. In other words, Travis knows R packages for everything. .right[.small[— Rodrigo Carvajal]] --- ### Why this talk? > I believe every time I am in meeting with Travis, he mentions R packages to analyze & visualize data, create fancy presentations, etc. <strike>In other words, Travis knows R packages for everything.</strike> .right[.small[— Rodrigo Carvajal]] <br> > I believe every time I am in meeting with Travis, he mentions R packages to analyze & visualize data, create fancy presentations, etc. .red[In other words, Travis spends too much time on Twitter.] .right[.small[— Me]] --- ### Follow these resources! .pull-left[ - [@icymi_r](https://twitter.com/icymi_r) - R posts you might have missed! - Searchable history [here](https://alastairrushworth.github.io/searchable/searchable.html) - [@dataandme](https://twitter.com/dataandme) - The OG "in case you missed it" of R Twitter - [#TidyTuesday](https://twitter.com/search?q=%23TidyTuesday) - [@thomas_mock](https://twitter.com/thomas_mock) to participate - [@grrrck](https://twitter.com/grrrck/) needs no introduction ] .pull-right[ .position-top[  ] ] --- class: inverse, center <br><br> <span style="font-size:1.35em">And now</span><br> <span style="font-size:3em">in no particular order</span><br> <span style="font-size:1.23em">are a bunch of</span><br> <span style="font-size:5em; font-family: Mansalva">secret tRacks</span> <br><br> .small.red[The slides do not contain full demos: feel free to interrupt for clarification.] --- ### Let [`pak` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://pak.r-lib.org/) install your packages It's faster and more convenient (e.g. for BioC / GitHub) than `devtools`, `remotes`, and `install.packages` .w-50.h-center[  ] --- ### [`asciicast` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://github.com/r-lib/asciicast) will make animated `.svg` 🤯 - Works for recording R console input/output - Way more lightweight than `.gif` or `.mov` formats - See [`images/make-star-wars-svg.R`](images/make-star-wars-svg.R) in [this repo](https://github.com/tgerke/secret-tracks) for the below .w-50.h-center[  ] --- ### Find html/unicode for emojis with [`ermoji` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://github.com/gadenbuie/ermoji) .pull-left[ .h-center[  ] ] .pull-right[ .h-center[  ] ] --- ### Use web icons with [`icons` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://pkg.mitchelloharawild.com/icons/) 👈 .small[ - Includes: - Font Awesome - Ionicons - Academicons - Simple Icons - Google’s Material Design - Octicons - Feather Icons ] ```r icons::fontawesome("dna", style = "solid") ``` <svg viewBox="0 0 448 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"></path></svg> ```r icons::ionicons("git-pull-request-outline") ``` <svg viewBox="0 0 512 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <title></title> <circle cx="128" cy="416" r="48" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"></circle> <line x1="128" y1="144" x2="128" y2="368" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"></line> <polyline points="288 160 224 96 288 32" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"></polyline> <circle cx="128" cy="96" r="48" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"></circle> <circle cx="384" cy="416" r="48" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"></circle> <path d="M240,96h84a60,60,0,0,1,60,60V368" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"></path></svg> --- ### View object differences with [`waldo` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://waldo.r-lib.org/) This is much nicer to use than `all.equal()` .w-75.h-center[  ] --- ### Export graphics with [`ragg` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://ragg.r-lib.org/) Replace `png()`/`jpeg()`/`tiff()` with `agg_png()`/`agg_jpeg()`/`agg_tiff()` .pull-left[ .w-75.h-center[   ] ] .pull-right[ .w-75.h-center[   ] ] --- ### Play `gif`s from the start with [`xaringanExtra` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://github.com/gadenbuie/xaringanExtra) - Otherwise, they run endlessly in the background and you often land on a slide mid-gif - `freezeframe` plays the `gif` from the beginning, restarts it with a click .pull-left[ .small-code[ ````markdown ```{r xaringanExtra-freezeframe, echo=FALSE} xaringanExtra::use_freezeframe(trigger = "click") ``` ```` ] ] .pull-right[ .w-40.h-center[  ] ] --- ### Tabulate counts with [`janitor::tabyl()` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://cran.r-project.org/web/packages/janitor/vignettes/tabyls.html) Though I ❤️ `table()`/`xtabs()` for nostalgic reasons, I'll never again use them .panelset[ .panel[.panel-name[Old way] .small-code[ ```r library(dplyr) table(starwars$gender, starwars$eye_color) ``` ``` ## ## black blue blue-gray brown dark gold green, yellow hazel orange ## feminine 2 6 0 5 0 0 0 2 0 ## masculine 8 12 1 15 1 1 1 1 8 ## ## pink red red, blue unknown white yellow ## feminine 0 0 1 0 0 1 ## masculine 1 5 0 2 0 10 ``` ] ] .panel[.panel-name[New way] .small-code[ ```r library(dplyr) library(janitor) starwars %>% tabyl(gender, eye_color) ``` ``` ## gender black blue blue-gray brown dark gold green, yellow hazel orange pink ## feminine 2 6 0 5 0 0 0 2 0 0 ## masculine 8 12 1 15 1 1 1 1 8 1 ## <NA> 0 1 0 1 0 0 0 0 0 0 ## red red, blue unknown white yellow ## 0 1 0 0 1 ## 5 0 2 0 10 ## 0 0 1 1 0 ``` ] ] .panel[.panel-name[New way+] .small-code[ ```r starwars %>% tabyl(gender, eye_color, show_na = FALSE) %>% adorn_totals("row") %>% adorn_percentages("col") %>% adorn_pct_formatting(digits = 0) %>% adorn_ns ``` ``` ## gender black blue blue-gray brown dark gold ## feminine 20% (2) 33% (6) 0% (0) 25% (5) 0% (0) 0% (0) ## masculine 80% (8) 67% (12) 100% (1) 75% (15) 100% (1) 100% (1) ## Total 100% (10) 100% (18) 100% (1) 100% (20) 100% (1) 100% (1) ## green, yellow hazel orange pink red red, blue unknown yellow ## 0% (0) 67% (2) 0% (0) 0% (0) 0% (0) 100% (1) 0% (0) 9% (1) ## 100% (1) 33% (1) 100% (8) 100% (1) 100% (5) 0% (0) 100% (2) 91% (10) ## 100% (1) 100% (3) 100% (8) 100% (1) 100% (5) 100% (1) 100% (2) 100% (11) ``` ] ] .panel[.panel-name[New way++] .small-code[ ```r starwars %>% tabyl(gender, eye_color, show_na = FALSE) %>% adorn_totals("row") %>% adorn_percentages("col") %>% adorn_pct_formatting(digits = 0) %>% adorn_ns %>% reactable::reactable() ``` ] .smaller[
] ] .panel[.panel-name[🤓 Bonus] .small-code[ ```r library(dplyr) library(janitor) starwars %>% tabyl(gender, eye_color, show_na = FALSE) %>% chisq.test() ``` ``` ## ## Pearson's Chi-squared test ## ## data: . ## X-squared = 15.917, df = 13, p-value = 0.2537 ``` ] ] ] --- ### Make manuscript tables with [`gtsummary` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](http://www.danieldsjoberg.com/gtsummary/) Daniel Sjoberg is a true hero. .h-center[  ] --- ### Color plot text with [`ggtext` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://wilkelab.org/ggtext/) - Most common: avoid need for legends by coloring plot title - Much of [The Glamour of Graphics](https://www.rstudio.com/resources/rstudioconf-2020/the-glamour-of-graphics/) framework implementable through `ggtext` .pull-left-60[ .small-code[ ```r library(ggtext) ggplot( ..., labs( title = glue::glue( "Steps recorded in 2021: ", "<strong style = 'color: #a9a9a9'>All days</strong>", " versus ", "<strong style = 'color: #b573dc'>Easter day</strong>" ), ..., ``` ] ] .pull-right-40[ .w-90.h-center[  ] ] --- ### Copy/paste data to R with [`datapasta` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://milesmcbain.github.io/datapasta/) .w-75.h-center[  ] --- ### Make `ggplot`s interactive with [`ggiraph` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://davidgohel.github.io/ggiraph/) `plotly` is awesome but doesn't always play nice with Shiny/Xaringan (`ggiraph` does) .panelset[ .panel[.panel-name[Make ggplots] .small-code[ ```r library(ggplot2) library(ggiraph) library(cowplot) mtcars <- mtcars mtcars$tooltip <- rownames(mtcars) gg1 <- ggplot(mtcars) + geom_point_interactive(aes(x = drat, y = wt, color = qsec, tooltip = tooltip, data_id = tooltip), size = 4) + theme_minimal() gg2 <- ggplot(mtcars) + geom_point_interactive(aes(x = qsec, y = disp, color = mpg, tooltip = tooltip, data_id = tooltip ), size = 4) + theme_minimal() ``` ] ] .panel[.panel-name[Make ggiraph] .small-code[ ```r girafe(ggobj = plot_grid(gg1, gg2), width_svg = 8, height_svg = 2.4) ```
] ] ] --- ### Format your code with [`styler` <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#FE6B00;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>](https://styler.r-lib.org/) .w-75.h-center[  ] --- ### Credits <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#1DA1F2;height:0.5em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg> .pull-left[ [@jimhester_](https://twitter.com/jimhester_) (`pak`) <br> [@GaborCsardi](https://twitter.com/GaborCsardi) (`pak`, `asciicast`)<br> [@dataandme](https://twitter.com/dataandme) (`asciicast`) <br> [@grrrck](https://twitter.com/grrrck/) (`ermoji`, `xaringanExtra`) <br> [@mitchoharawild](https://twitter.com/mitchoharawild) (`icon`) <br> [@hadleywickham](https://twitter.com/hadleywickham) (`waldo`) <br> [@thomasp85](https://twitter.com/thomasp85) (`ragg`) ] .pull-right[ [@samfirke](https://twitter.com/samfirke) (`janitor`) <br> [@statistishdan](https://twitter.com/statistishdan) (`gtsummary`) <br> [@ClausWilke](https://twitter.com/ClausWilke) (`ggtext`) <br> [@MilesMcBain](https://twitter.com/MilesMcBain) (`datapasta`) <br> [@DavidGohel](https://twitter.com/DavidGohel) (`ggiraph`) <br> [@krlmlr](https://twitter.com/krlmlr) (`styler`) <br> [@lorenzwalthert](https://twitter.com/lorenzwalthert) (`styler`) ] <br><br><br> .center[ I'm [@travisgerke](https://twitter.com/travisgerke). See you there <svg viewBox="0 0 496 512" style="position:relative;display:inline-block;top:.1em;fill:#1DA1F2;height:0.75em;margin-bottom:8px;" xmlns="http://www.w3.org/2000/svg"> <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"></path></svg> ] <style type="text/css"> .h-center { margin: 0 auto; } .v-center { display: flex; justify-content: center; align-items: center; } .w-90 { width: 90%; } .w-75 { width: 75%; } .w-50 { width: 50%; } .w-40 { width: 40%; } .w-25 { width: 25%; } .w-20 { width: 20%; } .fixedContainer { position: fixed; width: 400px; height: 100px; left: 20%; top: 10%; margin-left: -200px; /*half the width*/ } .talk-title-custom h1 { margin-top: 0; margin-bottom: 20px; font-family: "Mansalva"; } .position-top { position: fixed; top: 0; left: 60%; width: 25%; } .small-code .remark-code { font-size: 60%; } .pull-left-60 { float: left; width: 57%; } .pull-right-40 { float: left; width: 37%; } </style>