MyNixOS website logo
Description

Zero-Based Indexing in R.

Extract and replace elements using indices that start from zero (rather than one), as is common in mathematical notation and other programming languages.

index0: Zero-based Indexing in R

R-CMD-check CRANstatus

The R programming language uses indices that start from 1, but sometimes it might be handy to be able to index from zero, as is more typical in mathematical notation and some other programming languages like C and Python.

Installation

Install the development version of index0 from GitHub with:

# install.packages("remotes")
remotes::install_github("Selbosh/index0")

Usage

This R package index0 provides the index0 class. Subsetting and operations using [ will index from zero rather than one. To return to normal behaviour, use as.index1 or just remove the index0 class from your object.

library(index0)
letters0 <- as.index0(letters)
numbers0 <- as.index0(c(2, 3, 4, 5, 6))

What is the zeroth letter of the alphabet? What is the zeroth number in our set?

letters0[0]
#> [1] "a"
#> indexed from 0
numbers0[0]
#> [1] 2
#> indexed from 0

What are the first, second and fourth letters?

letters0[c(1, 2, 4)]
#> [1] "b" "c" "e"
#> indexed from 0

Replace the first and third numbers with NA:

numbers0[c(1, 3)] <- NA
numbers0
#> [1]  2 NA  4 NA  6
#> indexed from 0
Metadata

Version

0.0.1

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • 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