seqm: sequences, empty if "by" not conforming

Description Usage Arguments Value Author(s) Examples

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 in the case where by is in the "wrong" direction, see examples.

Usage

1
  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.

Author(s)

Christian W. Hoffmann <christian@echoffmann.ch>

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
  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

cwhmisc documentation built on May 1, 2019, 7:55 p.m.