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.