Disordered vectors in R: introducing the disordR package
Objects in the stl map class of C++ associate a value to each of a set of keys. Accessing values or keys of such an object is problematic in the R programming language because the value-key pairs are not stored in a well-defined order. This document motivates and discusses the concept of "disordered vector" as implemented by the disordR package which facilitates the handling of map objects. Values and keys of a map are stored in an implementation-specific way so certain extraction and replacement operations should be forbidden. For example, if values are real, then the "first" value is implementation specific…but the maximum value has a well-defined result. The disordR package makes forbidden operations impossible while allowing transparent R idiom for permitted operations. An illustrative R session is given in which the package is used abstractly, without reference to any particular application, and then shows how it can be used to manipulate multivariate polynomials. The disordR package is a dependency of clifford, freealg, hyper2, mvp, spray, stokes, and weyl. The disordR package is available on CRAN at <https://CRAN.R-project.org/package=disordR>.
READ FULL TEXT