Dear list,
This should be a simple one, I just cannot see it.
I need to generate a sequence of the form:
4 5 6 13 14 15 22 23 24
That is: starting with 4, make a 3 numbers sequence, jump 6, then another 3
and so on.
I can create a whole vector with:
myvec <- rep(rep(c(F, T, F), rep(3, 3)), 3)
Then see which are TRUE:
which(myvec)
[1] 4 5 6 13 14 15 22 23 24
I'd like to avoid creating the whole vector if possible; for very large ones
it can be time consuming. There should be a way to only create the proper
indexes...
Thanks for any hint,
Adrian
--
Adrian Dusa
Romanian Social Data Archive
1, Schitu Magureanu Bd
050025 Bucharest sector 5
Romania
Tel./Fax: +40 21 3126618 \
+40 21 3120210 / int.101
Adrian DUSA wrote:> Dear list, > > This should be a simple one, I just cannot see it. > I need to generate a sequence of the form: > 4 5 6 13 14 15 22 23 24 > > That is: starting with 4, make a 3 numbers sequence, jump 6, then another 3 > and so on. > I can create a whole vector with: > myvec <- rep(rep(c(F, T, F), rep(3, 3)), 3) > > Then see which are TRUE: > which(myvec) > [1] 4 5 6 13 14 15 22 23 24 > > > I'd like to avoid creating the whole vector if possible; for very large ones > it can be time consuming. There should be a way to only create the proper > indexes... > > Thanks for any hint, > Adrian >Is this it?> as.vector(outer(0:2,seq(4,22,9),"+"))[1] 4 5 6 13 14 15 22 23 24 -- O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
is it sth like: as.integer(sapply(seq(4, 22, by=9), seq, length.out=3)) you're looking for? b On Jan 30, 2007, at 9:29 AM, Adrian DUSA wrote:> Dear list, > > This should be a simple one, I just cannot see it. > I need to generate a sequence of the form: > 4 5 6 13 14 15 22 23 24 > > That is: starting with 4, make a 3 numbers sequence, jump 6, then > another 3 > and so on. > I can create a whole vector with: > myvec <- rep(rep(c(F, T, F), rep(3, 3)), 3) > > Then see which are TRUE: > which(myvec) > [1] 4 5 6 13 14 15 22 23 24 > > > I'd like to avoid creating the whole vector if possible; for very > large ones > it can be time consuming. There should be a way to only create the > proper > indexes... > > Thanks for any hint, > Adrian > > -- > Adrian Dusa > Romanian Social Data Archive > 1, Schitu Magureanu Bd > 050025 Bucharest sector 5 > Romania > Tel./Fax: +40 21 3126618 \ > +40 21 3120210 / int.101 > > ______________________________________________ > R-help at stat.math.ethz.ch 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.
Adrian DUSA wrote:> Dear list, > > This should be a simple one, I just cannot see it. > I need to generate a sequence of the form: > 4 5 6 13 14 15 22 23 24 > > That is: starting with 4, make a 3 numbers sequence, jump 6, then another 3 > and so on. > I can create a whole vector with: > myvec <- rep(rep(c(F, T, F), rep(3, 3)), 3) > > Then see which are TRUE: > which(myvec) > [1] 4 5 6 13 14 15 22 23 24 > > > I'd like to avoid creating the whole vector if possible; for very large ones > it can be time consuming. There should be a way to only create the proper > indexes... > >Maybe: n=10 3+rep(1:3,times=n)+9*rep(0:(n-1),each=3)> Thanks for any hint, > Adrian > >Regards, Martin
On Tuesday 30 January 2007 16:38, Peter Dalgaard wrote:> >[...snip...] > Is this it? > > > as.vector(outer(0:2,seq(4,22,9),"+")) > > [1] 4 5 6 13 14 15 22 23 24Indeed it is :)) Thanks, Adrian -- Adrian Dusa Romanian Social Data Archive 1, Schitu Magureanu Bd 050025 Bucharest sector 5 Romania Tel./Fax: +40 21 3126618 \ +40 21 3120210 / int.101
> f <- function(n){as.vector(sweep(matrix(4:6,nrow=3,ncol=n),2,seq(from=0,by=9,len=n),"+"))} > f(10) [1] 4 5 6 13 14 15 22 23 24 31 32 33 40 41 42 49 50 51 58 59 60 67 68 69 76 77 78 85 86 87 > HTH rksh On 30 Jan 2007, at 14:29, Adrian DUSA wrote:> Dear list, > > This should be a simple one, I just cannot see it. > I need to generate a sequence of the form: > 4 5 6 13 14 15 22 23 24 > > That is: starting with 4, make a 3 numbers sequence, jump 6, then > another 3 > and so on. > I can create a whole vector with: > myvec <- rep(rep(c(F, T, F), rep(3, 3)), 3) > > Then see which are TRUE: > which(myvec) > [1] 4 5 6 13 14 15 22 23 24 > > > I'd like to avoid creating the whole vector if possible; for very > large ones > it can be time consuming. There should be a way to only create the > proper > indexes... > > Thanks for any hint, > Adrian > > -- > Adrian Dusa > Romanian Social Data Archive > 1, Schitu Magureanu Bd > 050025 Bucharest sector 5 > Romania > Tel./Fax: +40 21 3126618 \ > +40 21 3120210 / int.101 > > ______________________________________________ > R-help at stat.math.ethz.ch 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.-- Robin Hankin Uncertainty Analyst National Oceanography Centre, Southampton European Way, Southampton SO14 3ZH, UK tel 023-8059-7743
Or perhaps
rep(4:6,3)+9*rep(0:2,rep(3,3))
with changes as necessary for longer sequences
Ben Fairbank
-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Adrian DUSA
Sent: Tuesday, January 30, 2007 8:29 AM
To: r-help at stat.math.ethz.ch
Subject: [R] jump in sequence
Dear list,
This should be a simple one, I just cannot see it.
I need to generate a sequence of the form:
4 5 6 13 14 15 22 23 24
That is: starting with 4, make a 3 numbers sequence, jump 6, then
another 3
and so on.
I can create a whole vector with:
myvec <- rep(rep(c(F, T, F), rep(3, 3)), 3)
Then see which are TRUE:
which(myvec)
[1] 4 5 6 13 14 15 22 23 24
I'd like to avoid creating the whole vector if possible; for very large
ones
it can be time consuming. There should be a way to only create the
proper
indexes...
Thanks for any hint,
Adrian
--
Adrian Dusa
Romanian Social Data Archive
1, Schitu Magureanu Bd
050025 Bucharest sector 5
Romania
Tel./Fax: +40 21 3126618 \
+40 21 3120210 / int.101
______________________________________________
R-help at stat.math.ethz.ch 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.