Publications by JottR on R
Start Me Up
The startup package makes it easy to control your R startup processes and to share part of your startup settings with others (e.g. as a public Git repository) while keeping secret parts to yourself. Instead of having long and windy .Renviron and .Rprofile startup files, you can split them up into short specific files under corresponding .Renviro...
1772 sym R (771 sym/2 pcs)
future 1.3.0: Reproducible RNGs, future_lapply() and More
future 1.3.0 is available on CRAN. With futures, it is easy to write R code once, which the user can choose to evaluate in parallel using whatever resources s/he has available, e.g. a local machine, a set of local machines, a set of remote machines, a high-end compute cluster (via future.BatchJobs and soon also future.batchtools), or in the clo...
5639 sym R (814 sym/1 pcs) 2 img
doFuture: A Universal Foreach Adaptor Ready to be Used by 1,000+ Packages
doFuture 0.4.0 is available on CRAN. The doFuture package provides a universal foreach adaptor enabling any future backend to be used with the foreach() %dopar% { ... } construct. As shown below, this will allow foreach() to parallelize on not only multiple cores, multiple background R sessions, and ad-hoc clusters, but also cloud-based cluste...
4529 sym R (1784 sym/1 pcs) 2 img
The R-help Community was Started on This Day 20 Years Ago
Today, its been 20 years since Martin Mächler started the R-help community list. The first post was written by Ross Ihaka on 1997-04-01: When: Tue Apr 1 10:35:48 CEST 1997″ /> Screenshot of the very first post to the R-help mailing list. This is a post about R’s memory model. We’re talking R v0.50 beta. I think that the paragraph at the e...
1274 sym 2 img
The Many-Faced Future
The future package defines the Future API, which is a unified, generic, friendly API for parallel processing. The Future API follows the principle of write code once and run anywhere – the developer chooses what to parallelize and the user how and where. The nature of a future is such that it lends itself to be used with several of the existin...
4680 sym R (1811 sym/11 pcs) 2 img
Startup with Secrets – A Poor Man’s Approach
New release: startup 0.10.0 is now on CRAN. If your R startup files (.Renviron and .Rprofile) get long and windy, or if you want to make parts of them public and other parts private, then you can use the startup package to split them up in separate files and directories under .Renviron.d/ and .Rprofile.d/. For instance, the .Rprofile.d/repos.R f...
5154 sym R (669 sym/9 pcs) 2 img
Performance: Avoid Coercing Indices To Doubles
x[idxs + 1] or x[idxs + 1L]? That is the question. Assume that we have a vector $x$ of $n = 100,000$ random values, e.g. > n <- 100000 > x <- rnorm(n) and that we wish to calculate the $n-1$ first-order differences $y=(y_1, y_2, …, y_{n-1})$ where $y_i=x_{i+1} - x_i$. In R, we can calculate this using the following vectorized form: > idxs <-...
4875 sym R (2391 sym/11 pcs) 2 img
future 1.8.0: Preparing for a Shiny Future
future 1.8.0 is available on CRAN. This release lays the foundation for being able to capture outputs from futures, perform automated timing and memory benchmarking (profiling) on futures, and more. These features are not yet available out of the box, but thanks to this release we will be able to make some headway on many of the feature requests...
3373 sym 2 img
Delayed Future(Slides from eRum 2018)
As promised – though a bit delayed – below are links to my slides and the video of my talk on Future: Parallel & Distributed Processing in R for Everyone that I presented last month at the eRum 2018 conference in Budapest, Hungary (May 14-16, 2018). The conference was very well organized (thank you everyone involved) with a great lineup of se...
1951 sym 2 img
future.apply – Parallelize Any Base R Apply Function
Got compute? future.apply 1.0.0 – Apply Function to Elements in Parallel using Futures – is on CRAN. With this milestone release, all* base R apply functions now have corresponding futurized implementations. This makes it easier than ever before to parallelize your existing apply(), lapply(), mapply(), … code – just prepend future_ to a...
8229 sym R (1496 sym/3 pcs) 2 img 1 tbl