Learn R Programming

cwhmisc (version 6.0)

seqm: sequences, empty if "by" not conforming

Description

Generate sequences, but unlike "seq", return NULL, when "seq" would generate a backward sequence. This function is useful for for-loops, when empty loops are required, if by is in the "wrong" direction, see examples.

Usage

seqm(from, to, by=1)

Arguments

from
starting value of sequence.
to
(maximal) end value of the sequence.
by
increment of the sequence.

Value

NULL, if (to-from)*by <0, otherwise="" usual="" result="" of="" seq i.e. seq.default.

Examples

Run this code
  seqm(12,4,-1)  #  12 11 10  9  8  7  6  5  4
  seqm(12,4,2)   #  NULL
  lo <- 1; up <- 3
  for (ii in lo:up) {
    cat(ii,"    ")
    for (kk in seqm(lo,ii-1)) {
      cat("   ",kk)  # do-in-lower-triangle
    }
    cat(" diag")     # do-something-on-the-diagonal
    for (kk in seqm(ii+1,up)) {
      cat("  :",kk)  # do-in-upper-traingle
    }
    cat("\n")    
  }
# 1      diag  : 2  : 3
# 2         1 diag  : 3
# 3         1    2 diag

Run the code above in your browser using DataLab