[R] for loop question

Ben Bolker ben at zoo.ufl.edu
Tue Sep 11 21:45:10 CEST 2001


  This is a "gotcha", which I think I will add to my list of "R traps"
(http://www.zoo.ufl.edu/bolker/emd/R/R-traps.html).

  The problem is in "operator precedence", or "priority": the colon
operator has higher precedence than the plus operator, so R treats

i+1:3

as

i+(1:3)

rather than

(i+1):3

(which is what you should write to get the behavior you expected).  I'm
not sure where this is found in the documentation.

OK, p. 14 of the "Introduction to R" says

  The colon operator has highest priority within an expression, so, for
  example 2*1:15 is the vector c(2, 4, ..., 28, 30). Put n <- 10 and
  compare the sequences 1:n-1 and 1:(n-1).


On Tue, 11 Sep 2001, HEUMANN,JOHN (A-Loveland,ex1) wrote:

> In the windows version of R (1.3.0) is the following a bug, a
> known problem, or expected behavior:
>
>  > for (i in 1:2) {
>  + for (j in i+1:3) {
>  + print(j)
>  + }
>  + }
>  [1] 2
>  [1] 3
>  [1] 4      ????
>  [1] 3
>  [1] 4      ????
>  [1] 5      ????
>  >
>
> Conversely, the following behaves as expected:
>
>  > for (i in 1:2) {
>  + k <- i+1
>  + for (j in k:3) {
>  + print(j)
>  + }
>  + }
>  [1] 2
>  [1] 3
>  [1] 3
>  >
>
> This is under NT4, SP5 using a pre-compiled binary from CRAN.
>
> Thanks,
> -jh-
>
> =========================================
> John M. Heumann, Agilent Technologies
> 815 14th St. S.W., Loveland, CO 80537 USA
> Email: john_heumann at agilent.com
> Phone: 970 679-3761 FAX: 970 679-5399
> =========================================
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
>

-- 
318 Carr Hall                                bolker at zoo.ufl.edu
Zoology Department, University of Florida    http://www.zoo.ufl.edu/bolker
Box 118525                                   (ph)  352-392-5697
Gainesville, FL 32611-8525                   (fax) 352-392-3704

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list