MyNixOS website logo
Description

Struct-Like Data Type Checking and Enforcement.

Enforcement of field types in lists. A drop-in tool to allow for dynamic input data that might be questionably parsed or cast to be coerced into the specific desired format in a reasonably performant manner.

structenforcement

pipeline status coverage report Latest Release

Tools for ensuring that data is correctly typed.

Without moving over to a strict type system such at that offered by the typed package or enforcing classes everywhere, this offers a straightforward approach to getting lists (and especially dataframes) into the correct types, where R's extreme dynamism might infer something incorrectly when it comes to input data.

It is naturally best used in conjunction with other means of ensuring that structures keep the correct types once they've been cast. As of the initial implementation, this mostly cares about primitive types. The only class that is handled neatly is POSIXct.

Installation

You can install the development version of structenforcement like so:

remotes::install_gitlab("S_S_/structenforcement")

Example

library(structenforcement)

template_struct <- data.frame(
    "Sepal.Length"  = integer(0),
    "Sepal.Width"   = numeric(0),
    "Petal.Length"  = numeric(0),
    "Petal.Width"   = numeric(0)
)
type_checked_iris <- type_check(
    template_struct,
    iris,
    TRUE,
    c("casts", "missing", "excess")
)
Metadata

Version

0.1.3

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows