On 2009.09.16. 16:08, Jack Tanner wrote:
I'd like to have something like seq() where I can pass in a length of the
desired sequence and a right limit so that the sequence goes up to the limit and
then starts again from 1.


Disclaimer: total R beginner here (started to learn a 1 day ago), who just came to this list to learn.

You could use the modulo operator.

# works now
seq(from=2, length.out=3)
[1] 2 3 4

# what I want
seq(from=2, length.out=3, rlimit=3)
[1] 2 3 1

# additional examples of what I want
seq(from=2, length.out=4, rlimit=3)
[1] 2 3 1 2

seq(from=1, length.out=4) %% 3 + 1

seq(from=2, length.out=4, rlimit=4)
[1] 2 3 4 1

seq(from=1, length.out=4) %% 4 + 1

seq(from=2, length.out=3, rlimit=2)
[1] 2 1 2

seq(from=1, length.out=3) %% 2 + 1

(the 'from' needed to be decreased by one, otherwise it'd start from 0)


I can write this procedurally, but it seems like there ought to be a cleaner R
way of doing it. Thanks in advance for any suggestions.


______________________________________________
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