2017-12-08 4 views
0

Auf breite Frage, die ich für R finden nicht in der Lage gewesen:Hinzufügen einen Zähler zu einer Schleife

Ich versuche, einen Zähler am Anfang einer Schleife hinzuzufügen. So dass, wenn ich laufen die Schleife sim = 1000:

if(hours$week1 > 1 and hours$week1 < 48) add 1 to the counter 
ifelse add 0 

Ich habe über Zähler Tutorials kam, die einen Satz drucken, damit Sie wissen, wo Sie sind (wenn etwas schief geht): zB

For (i in 1:1000) { 
    if (i%%100==0) print(paste("No work", i)) 
} 

Aber der Zweck meines Zählers besteht darin, eine Wertausgabe zu erzeugen, die misst, wie viele der 1000 Läufe in der Schleife in einen bestimmten Bereich fallen.

+2

Try ein [reproduzierbares Beispiel] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) zusammen mit dem erwarteten Ausgang zu geben. –

+2

Worin besteht das Problem bei der Verwendung der zweiten vorgeschlagenen Schleife und der Beibehaltung eines Zählers außerhalb der Schleife? –

Antwort

0

Sie es im Grunde hatte. Sie müssen nur a) den Zähler vor der Schleife initialisieren, b) & anstelle von and in Ihrem if Zustand verwenden, c) tatsächlich 1 zum Zähler hinzufügen. Da das Hinzufügen von 0 dasselbe ist wie das Nichtstun, müssen Sie sich nicht um das "sonst" kümmern.

counter = 0 
for (blah in your_loop_definition) { 
    ... loop code ... 
    if(hours$week1 > 1 & hours$week1 < 48) { 
     counter = counter + 1 
    } 
    ... more loop code ... 
} 
+0

Das ist perfekt. Ich arbeite sehr gut. –

0

Wie wäre es damit?


count = 0 

for (i in 1:1000) { 

    count = ifelse(i %in% 1:100, count + 1, count) 

} 

count 

#> [1] 100