A different solution: grr2 <- function( rn ) { f <- function( i ) { if ( 0 == i %% 2 ) seq.int( i ) else seq( i, 1 ) } L <- lapply( seq.int( rn - 1 ), f ) do.call( c, L ) }
On April 17, 2020 5:11:40 PM PDT, Jeff Newmiller <jdnew...@dcn.davis.ca.us> wrote: >A useful help page: > >?Syntax > >On April 17, 2020 4:26:19 PM PDT, Rolf Turner <r.tur...@auckland.ac.nz> >wrote: >> >> >>The answer is very simple: parentheses. (Also think about "operator >>precedence".) If you assign rn <- 3, then 1:rn-1 is: >> >>[1] 0 1 2 >> >>The "-" operator is applied *after* the ":" operator. >> >>You want 1:(rn-1) which gives >> >>[1] 1 2 >> >>and the desired result. >> >>cheers, >> >>Rolf Turner >> >>On 18/04/20 7:55 am, Monica Palaseanu-Lovejoy wrote: >>> Hi, >>> >>> I wrote a relatively simple function. If i run the code inside the >>function >>> line by line i am getting the result i was expecting, but if i run >>the >>> function, i get a different result. >>> >>> The function: >>> >>> grr1 <- function(rn) { >>> r.up <- c() >>> for (i in 1:rn-1) { >>> if (i%%2==0) ru <- seq(1,i) else ru <- seq(i,1) >>> r.up <- c(r.up, ru) >>> } >>> return(r.up) >>> } >>> >>> So, if rn is 3 for example i would expect to get 1 1 2 >>> >>> grr1(3) >>> [1] 1 0 1 1 2 >>> >>> If i run it line by line inside the function: >>> r.up <- c() >>>> r.up >>> NULL >>> >>> i=1 >>> if (i%%2==0) ru <- seq(1,i) else ru <- seq(i,1) >>>> ru >>> [1] 1 >>> >>> r.up <- c(r.up, ru) >>> r.up >>> [1] 1 >>> >>> i=2 >>> if (i%%2==0) ru <- seq(1,i) else ru <- seq(i,1) >>> ru >>> [1] 1 2 >>> r.up <- c(r.up, ru) >>>> r.up >>> [1] 1 1 2 >>> >>> So - i am getting the result i am expecting. From where the 1 0 >>before what >>> i expect as a result comes from? I am sure i am doing some very >basic >>> error, but it seems i cannot figure it out. >>> >>> I run R x64 3.2.6. I know it is not the latest version, but it >>should not >>> give me unexpected results because of that i would think. >>> >>> sessionInfo() >>> R version 3.6.2 (2019-12-12) >>> Platform: x86_64-w64-mingw32/x64 (64-bit) >>> Running under: Windows 10 x64 (build 17763) >>> >>> Matrix products: default >>> >>> locale: >>> [1] LC_COLLATE=English_United States.1252 >>> [2] LC_CTYPE=English_United States.1252 >>> [3] LC_MONETARY=English_United States.1252 >>> [4] LC_NUMERIC=C >>> [5] LC_TIME=English_United States.1252 >>> >>> attached base packages: >>> [1] stats graphics grDevices utils datasets methods base >>> >>> loaded via a namespace (and not attached): >>> [1] compiler_3.6.2 >>> >>> Thanks, >>> Monica >> >>______________________________________________ >>R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>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. -- Sent from my phone. Please excuse my brevity. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.