TheCoatlessProfessor is a website that strives to bring statistical prowess to the masses through useful articles for the stumbleuponer and googler. Our goal is to make readily available helpful tips, tutorials, and resources that the students of Statistics and Computer Science will appreciate.
The shinyelectron package ( CRAN , GitHub , documentation ) exports a Shiny application written in R or Python as a standalone desktop application for Windows, macOS, and Linux. The core entry point is export(appdir, destdir) : it autodetects the app type, defaults to the shinylive strategy, and wraps the result in an Electron shell, so a minimal call needs no other arguments. Depending on the…
The paintr package ( GitHub , documentation ) draws pictures of R data structures for teaching: vectors, matrices, data frames, lists, and arrays. Its one trick is that on each cell it writes the expression you would type to reach that value . The label on the third box of a vector is [3] , because x[3] is how you pull it out; the label in a matrix cell is [2, 4] , because that is m[2, 4] . The…
livelink ( GitHub , documentation ) turns R code into a URL that runs it in the browser. There is no compute server. A static host still serves the page, webr.r-wasm.org or a localhost preview if you run your own, but nothing at the far end executes R. The reader’s browser does that, and the code travels in the part of the URL that browsers never send anywhere. Version 0.1.1 is on CRAN, a week…
The hard part of teaching R is almost never the arithmetic. Anyone can add two numbers. The trouble starts the first time you ask someone to reach into a structure and pull a single value back out. You write x[3] on the board. They nod. Then they try it on their own data and freeze, because x[3] is a sentence in a language whose nouns they cannot see. To you, x is a row of boxes and the third box…
The ensmallen team shipped ensmallen 3.11.0: “Sunny Day” (2025-12-16), and we’ve bundled it into RcppEnsmallen . The headline change refactors GradientDescent into a policy-based GradientDescentType<UpdatePolicyType, DecayPolicyType> and adds two new optimizers, DeltaBarDelta and MomentumDeltaBarDelta . Upstream also squashed an off-by-one bug where the actual number of executed iterations came in…
Note Companion post This is a follow-up to Automating Dependency Updates with GitHub Actions: The Ensmallen Case , and the fix described here shipped in RcppEnsmallen v0.3.11.0.1 . {RcppEnsmallen} bundles the header-only ensmallen optimization library verbatim inside inst/include/ . That works cleanly until an upstream header lands with a very long name. ensmallen 3.11.0 did exactly that, adding a…
The first time someone sends you a livelink URL and you click it, the browser does something that quietly rearranges your mental model. A tab opens, R or Python boots up inside it, your correspondent’s code is already sitting in the editor, and the plot is already drawn. You check the network tab out of habit, and there is nothing to check. No request went out to fetch the code, because there was…
The livelink package ( GitHub , documentation ) turns a piece of R code into a URL that runs it in the browser. There is no server, no account, and nothing to upload. You hand someone a link, they click it, and they are looking at a live R session with your code already in the editor. Two destinations are supported: webR , a full R REPL compiled to WebAssembly, and Shinylive , which runs R and…
Two frustrations The R Observatory started from two frustrations. I wanted to see what was happening across CRAN and Bioconductor, the two big R package repositories, week to week: what was being published, what was breaking, what was getting pulled, and how any given package was really doing. And I wanted to look at all of it in something built this decade, not the pages the repositories serve…
Most R packages people install come from one place, CRAN , the archive that acts as the app store for the R language. Getting a package in is a rite of passage, and the gate everyone talks about is a program called R CMD check . It takes the package tarball you have built, installs it, runs your examples and tests, inspects your documentation, and prints a tidy verdict of errors, warnings, and…
The peeky package ( GitHub , documentation ) lets you download and extract the source code behind published Shinylive applications, the browser-based Shiny apps that run entirely on WebAssembly builds of R ( webR ) and Python ( Pyodide ) with no computational server in sight. It works with both standalone Shinylive apps and Quarto documents that embed them, in both R and Python flavors. There’s a…
The first time you watch a Shinylive app boot, it looks like any other Shiny app: a slider moves, a plot redraws, everything is interactive. Then you open your browser’s developer tools, glance at the network tab, and notice something that quietly rearranges your mental model. There is no round trip to a server. The browser downloaded a file called app.json , unpacked it, and started running R (or…
The shinyelectron package ( GitHub , documentation ) exports a Shiny application as a standalone desktop application for Windows, macOS, and Linux. The core entry point is export(appdir, destdir) : it autodetects the app type, defaults to the shinylive strategy, and wraps the result in an Electron shell, so a minimal call needs no other arguments. Depending on the runtime strategy you choose, the…
When I introduced shinyelectron last year and cut the v0.1.0 release , it had a single, narrow job. You handed it an R Shiny app, it compiled that app to WebAssembly with webR , and it wrapped the result in an Electron shell that your users could download and run without ever installing R . That was the whole package. It worked, and the offline WebAssembly path is still the default, but it was one…
shinyelectron exports a Shiny app, in R or Python , as a standalone desktop application. On your own laptop that is one call to export() and a native installer for whatever machine you happened to run it on. The catch is baked into how desktop software works: a .dmg can only be built on macOS, an .exe on Windows, and an .AppImage on Linux. If you want to ship to all three, the honest answer has…
The pycmdcheck package ( GitHub , PyPI , documentation ) answers a question Python packaging never gave a single tool for: is my package healthy? R users have had R CMD check for two decades - one command that walks a package and tells you, plainly, where it falls short. Python has the pieces, but they are scattered across a dozen places: build to confirm the package builds, twine check for…
When you are learning to wrap compiled code in an R package, the hardest part is rarely the idea. It is the dozen small mechanical details that have to line up before anything compiles: where the header goes, what the Makevars flag is called, how the attribute is spelled, which file the generator writes. A full production package buries those details under everything else it is doing, and a…
This post is a version of the rcpp-and-mirai README from the R&D Rcpp collection of compiled-code examples. The repository holds the full, runnable source. This small example R package demonstrates how to house a compiled C++ compute kernel inside a package and distribute it in parallel across a pool of mirai daemons, so that each worker reaches the compiled function directly without copying…
This post is a version of the cpp11-openmp README from the R&D Rcpp collection of compiled-code examples. The repository holds the full, runnable source. This small example R package demonstrates how to parallelize a C++ routine with OpenMP inside a function exposed to R through cpp11 , the lighter-weight, header-only alternative to Rcpp . It is one of the R&D Rcpp prototype packages, a collection…
This post is a version of the rcpp-openmp README from the R&D Rcpp collection of compiled-code examples. The repository holds the full, runnable source. This small example R package demonstrates how to parallelize a C++ routine with OpenMP directly inside an Rcpp function, without dropping down to a separate C translation unit. It is one of the “R&D Rcpp” prototype packages, a collection of…