Re: [Rd] (PR#9811) sequence(c(2, 0, 3)) produces surprising results,

From: <bill_at_insightful.com>
Date: Fri, 27 Jul 2007 21:54:24 +0200 (CEST)


On Fri, 27 Jul 2007, Prof Brian Ripley wrote:

> This is as doumented, and I think you could say the same thing of seq().
> BTW, sequence() allows negative inputs, and I don't think you want
> sum(input) in that case.

help(sequence) says contradictory things about the nvec[i]==0 case:

   For each element of 'nvec' the
   sequence 'seq(nvec[i])' is created. ... and

   nvec: an integer vector each element
   of which specifies the upper bound ...

0 is not the upper bound of seq(0).

In any case, a suitably general multisequence function would probably want vectors of both to's and from's.

merge.data.frame() requires a combination of a vectorized sequence function and rep. It uses a .Internal to do the job well. (This is a case where the individual sequences typically have length one or zero.)

  > .Internal(merge(rep(1:3, c(3,0,5)), rep(1:4, c(2,2,3,2)), T, T))   $xi
   [1] 1 1 2 2 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8

  $yi
   [1] 1 2 1 2 1 2 5 6 7 5 6 7 5 6 7 5 6 7 5 6 7

  $x.alone
  integer(0)

  $y.alone
  integer(0)

sequence and rep produce complementary outputs, except in the nvec[i]==0 case.   > rep(1:3, c(5,2,7)) # identifies group    [1] 1 1 1 1 1 2 2 3 3 3 3 3 3 3
  > sequence(c(5,2,7)) # which in group
   [1] 1 2 3 4 5 1 2 1 2 3 4 5 6 7



Bill Dunlap
Insightful Corporation
bill at insightful dot com
360-428-8146

 "All statements in this message represent the opinions of the author and do  not necessarily reflect Insightful Corporation policy or position."



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Mon 30 Jul 2007 - 14:02:14 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 30 Jul 2007 - 21:36:51 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.