Thanks for the answers from Duncan, Bill, Gabor, and Henrik. You convinced me that

1. The solution

if (x > 1){
   for (x in 2:x){
      ...

is the easiest, most effective,  and most easy-to-understand.

2. However, Bill (and Henrik) raised the question of replacing '1' with '1L'; I understand the meaning of that, but does it matter (in practice)?

3. Noone commented upon

i <- 1
while (i < x){
   i <- i + 1
   ...
}

I suppose that it means that it is the best solution.

Thanks, and Happy New Year 2014!

Göran

On 12/22/2013 06:57 PM, William Dunlap wrote:
for (i in seq_len(x - 1) + 1)

should be efficient and safe.

Oops, not safe when x is 0.

Also, the '+ 1' should be '+ 1L' to get the same answer as
seq_len(x)[-1].

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


-----Original Message-----
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
Behalf
Of Duncan Murdoch
Sent: Saturday, December 21, 2013 3:52 PM
To: Göran Broström; R-help@r-project.org
Subject: Re: [R] seq_len and loops

On 13-12-21 6:50 PM, Duncan Murdoch wrote:
On 13-12-21 5:57 PM, Göran Broström wrote:
I was recently reminded on this list that

"Using 1:ncol() is bad practice (seq_len is designed for that purpose)"
(Ripley)

This triggers the following question: What is "good practice" for
2:ncol(x)? (This is not a joke; in a recursive situation it often makes
sense to perform the calculation for the start value i = 1, then
continue with a loop over the rest, "the Fortran way";)

I usually use

if (ncol(x) > 1)
        for (i in 2:ncol(x)){
           ....

but I can think of

for (i in seq_len(x - 1)){
        I <- i + 1
       ....

and

i <- 1
while (i < ncol(x)){
        i <- i + 1
        ....

What is "good practice" (efficient and safe)?

for (i in seq_len(x - 1) + 1)

should be efficient and safe.

Oops, not safe when x is 0.

  >
A little less efficient, but clearer would be

for (i in seq_len(x)[-1])

Duncan Murdoch


______________________________________________
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.

______________________________________________
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