Recently I have been going through some old code that I needed to rerun. As part of doing so I was taking the opportunity to reimplement it with some new tricks that I have discovered since I wrote it ~2 years ago.
This particular script has many, many for loops which I now wanted to replace with purrr::map to make the code cleaner and easier to maintain.
As part of using purrr::map I wondered if I could also make the code go faster by parallelising the loop.
Read more →
This webpage gives some examples of a few of the cool additional things that can be done with relative ease when creating and Rmarkdown document.
https://holtzy.github.io/Pimp-my-rmd/
Read more →
One of the packages that was a highlight for me from rstudio::conf2018 was usethis.
This package forms part of the package building workflow but also general project workflows.
In a package development workflow some of the key functions are:
# creates a new dir and populates with a skeleton containing examples usethis::create_package("/path/to/create/package") # creates an R script in the R/ dir (don't need to include the .R extension) usethis::use_r("filename") # series of license templates such as mit, gpl3, cc0 etc usethis::use_*_license_license("name") # initialises a testthat dir to put tests usethis::use_testthat() # creates a testfile usethis::use_test("filename") # creates a README file for your package usethis::use_readme_md()
Read more →
Recently on twitter - the source of most of these posts - Jenny Bryan (@JennyBryan) posted a link to her slides from her talk she gave in Auckland (http://bit.ly/jenny-nz). It inpsired threats of arson for people that use
setwd("/absolute/path/to/file") (this was because it reduces portability and outside of you using it the chances of someone having the exact directory setup is basically 0%)
and
rm(list = ls()) (because it interferes with peoples sessions and doesn’t sort out other session issues such as packages already loaded)
Read more →
This came up in my twitter feed from Rbloggers and looks pretty useful as a set and forget type thing.
See https://www.r-bloggers.com/speeding-up-package-installation-2/ for the actual post
Basically, install.packages() uses the environment setting for Ncpus, which by default is set to 1.
The current setting can be found with
# the second argument returns 1 if Ncpus is not set, instead of NULL getOption("Ncpus", 1L) Ncpus can be set with this command before running install.
Read more →