Learn R Programming

mathml. Translate R expressions to MathML

mathml allows rendering R terms in pretty mathematical equations, bridging the gap between computational needs, presentation of results, and their reproducibility.

Researchers or teachers can already use R Markdown to conduct analyses and show results, mathml smoothes this process and allows for integrated calculations and output. The package mathml can help in fact to improve data analyses and statistical reports from an aesthetical perspective, as well as regarding reproducibility of research, by allowing also for a better detection of possible mistakes in R programs.

The package supports both MathML and Latex/MathJax for use in R Markdown documents, presentations and Shiny Apps.

License

This R package is distributed under a BSD-2 simplified license (see the file LICENSE).

Installation

  1. Download and install a recent R from https://www.r-project.org/

  2. Download and install a recent RStudio from https://www.rstudio.com/

  3. R> install.packages("mathml")

The package depends on R package rolog [https://cran.r-project.org/package=rolog], which itself needs the SWI-Prolog runtime on the system. The latter can be installed either from [https://swi-prolog.org] or by installing R package rswipl [https://cran.r-project.org/package=rswipl].

Example

library(mathml)
term <- quote(a^b + c * (d + 3) - a^2L * (a + d))
mathout(term)

$a^b + c \cdot (d+3.00) - a^2 \cdot (a+d)$

Copy Link

Version

Install

install.packages('mathml')

Monthly Downloads

203

Version

1.2

License

FreeBSD

Issues

Pull Requests

Stars

Forks

Maintainer

Matthias Gondan

Last Published

July 15th, 2023

Functions in mathml (1.2)

%.%

Product x * y, shown as x dot y
fontstyles

Identity functions for different font styles
%<-%

Left arrow, presented as x <- y
frac

Division displayed as fraction
omit_left

omit_left This is a function that allows the user to highlight the mistakes, in particular the omissions in the left-hand side of the expression
omit

omit
over

Division displayed as fraction
omit_right

omit_right This is a function that allows the user to highlight the mistakes, in particular the omissions in the right-hand side of the expression
%=>%

Left double arrow, displayed as x <= y
%<=>%

If and only if condition, displayed as x <=> y
name

Add a name attribute to an element (most often, an R function)
%<=%

Right double arrow, displayed as x => y
mathout

MathML or MathJax output, depending on the knitr context
%==%

Equivalence, shown as x == y
hook

Hook for custom symbols
instead

instead
%up%

Up arrow, presented as x up y
%~~%

Approximate equality, shown as x ~~ y
%<->%

Double sided arrow, presented as x <-> y
mathml

MathML output
mathml_preproc

Map R operators to their respective Prolog counterparts
prod_over

product over a range. On the R side, this function just returns the product of the first argument, but allows for decorations.
sum_over

sum over a range. On the R side, this function just returns the first argument, but allows for decorations.
math

Adds the class "math" to the object for knitr output via mathout()
mathjax

Mathjax output
add

add
dfrac

Division displayed as large fraction
fname

Return function body
cal

Calligraphic font
%+-%

Plus Minus, it shows x and calculates x +- y
add_left

add_left
dot

Multiplication
denote

denote This is a function that allows the user to insert abbreviations in the formula, explain them and make the needed computations
add_right

add_right
canonical

Canonicalize an R call: Reorder the function arguments
decorations

Identity functions for different decorations
%prop%

Proportional, shown as x o< y
%dbldown%

Down double arrow, displayed as x dArr y
%down%

Down arrow, presented as x downarrow y
%dblup%

Up double arrow, displayed as x uArr y
%=~%

Congruence, shown as x =~ y
%->%

Right arrow, presented as x -> y