Hello,

I want to use seq with multiple from values and am getting unexpected
(to me) behavior. I'm wondering if this behavior is intentional or not.

> seq(2, by=3, length.out=4)
[1]  2  5  8 11

> seq(3, by=3, length.out=4)
[1]  3  6  9 12

Now if I want the combined sequence, I thought I could pass in c(2,3),
and I get:
> seq(c(2,3), by=3, length.out=8)
[1]  2  6  8 12 14 18 20 24

However, the result is not what I expected (i.e. what I wanted):
[1]  2  3  5  6  8  9 11 12

It seems that this is a consequence of vector recycling during the
summation in seq.default:
  if (missing(to)) from + (0L:(length.out - 1L)) * by

To get the value I want, I am using the following code:
> sort(as.vector(apply(array(c(2,3)), 1, seq, by=3,length.out=4)))
[1]  2  3  5  6  8  9 11 12

So two questions:
1. Is seq designed/intended to be used with a vector from argument, and
is this the desired behavior?
2. If so, is there a cleaner way of implementing what I want?

Thanks,
Brian




--------------------------------------------------------------------------
This message w/attachments (message) may be privileged, ...{{dropped:27}}

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to