Mr Ripley,
May I ask why seq_len() and seq_along() are better than seq()?
Thanks,
Ivan
Le 1/25/2011 09:58, Prof Brian Ripley a écrit :
On Tue, 25 Jan 2011, Petr Savicky wrote:
On Mon, Jan 24, 2011 at 11:18:35PM +0100, Roy Mathew wrote:
Thanks for the reply Erik, As you mentioned, grouping consecutive
elements
of 'a' was my idea.
I am unaware of any R'ish way to do it. It would be nice if someone
in the
community knows this.
The error resulting in the NA was pretty easy to fix, and my loop
works, but
the results are still wrong (new script below).
Ideally it should print single "hello" for the single letters and
grouped '3
hellos' for the fives, grouped '2 hellos' for the sixes etc.
Based on the run results, if the value of n is being tracked, it
changes
quite unpredictably.
Can someone explain how the value of n changes from end of the loop
to the
top without anything being done to it?
Hi.
A for-loop in R is different from a for-loop in C. It is similar
to foreach loop in Perl. If v is a vector, then
for (n in v)
first creates the vector v and then always performs length(v)
iterations.
Before iteration i, n is assigned v[i] even if n is changed in the
previous iteration.
And also if v is changed during the loop.
If you want to control the loop variable during execution, it is
possible
to use a while loop, where you have full control. While loop may be
better
also if v has a very large length, since, for example
for (n in 1:1000000)
creates a vector of length 1000000 in memory.
It should also be noted that the for-loop
for (n in 1:k)
performs 2 iterations, if k is 0, since 1:0 is a vector of length 2.
If k may be 0, then it is better to use
for (n in seq(length=k))
since seq(length=0) has length 0.
Since you keep mentioning that, it is actually much better to use
seq_len(k) (and seq_along(x) instead of your earlier recommendation of
seq(along=x)). And if you are using seq() in other cases in programs,
consider seq.int() instead.
Hope this helps.
Petr Savicky.
--
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Museum
Abt. Säugetiere
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calan...@uni-hamburg.de
**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/1525_8_1.php
______________________________________________
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.