[R] seq_len and loops
Duncan Murdoch
murdoch.duncan at gmail.com
Sun Dec 22 00:50:13 CET 2013
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. A little less efficient, but clearer would be
for (i in seq_len(x)[-1])
Duncan Murdoch
More information about the R-help
mailing list