[R] how to get empty sequence for certain bounds
Prof Brian Ripley
ripley at stats.ox.ac.uk
Wed Nov 15 18:39:22 CET 2006
On Wed, 15 Nov 2006, Tamas K Papp wrote:
> Hi,
>
> I have encountered this problem quite a few times and thought I would
> ask.
>
> Let's say that I have two endpoints, a and b, which are integers. If
> a <= b, I would like to get a:b, but if a > b, then numeric(0), for
> example:
>
> myseq(3,5) => 3:5
> myseq(3,3) => 3
> myseq(3,2) => numeric(0)
>
> The operator : just gives decreasing sequences in the latter case, and
> I could not coax seq into doing this either (of course the
> documentation is correct, it never claims that I could). Should I
> just write my own function, or is there a standard R way to do this?
This has been discussed fairly recently, so see the list archives.
myseq <- function(m, n) m - 1 + seq_len(max(n-m+1, 0))
looks about right. Note that this is a little strange, as you want to
include the left endpoint sometimes and not others.
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list