2017-03-25 7 views
0

Ich bin ein Anfänger bei R und suchte die Foren und habe keine Antwort auf diese Frage gefunden. Ich versuche, eine Schleife in R zu erstellen, die zählt, ob eine Bedingung zwischen 2 Zeilen in einem Datenframe erfüllt ist. Ich verstehe, dass dies kein effizienter Weg ist, aber es ist für eine Klassenaufgabe. Mein Problem ist, dass mein Code eine Endlosschleife erzeugt und mir eher die Zählerausgabe gibt, und es ist mir unklar, wie ich das beheben kann. Ich würde jeden Vorschlag sehr schätzen. Der Code ist unten:Erstellen eines Zählers in R mit einer Schleife

counter=0 
for (i in 1:nrow(dataframe)) 
    {if (dataframe$column1[i]>dataframe$column2[i]==TRUE) 
{ 
counter=counter+1} 
} 
print(counter) 
+0

Es ist nichts offensichtlich falsch mit dem Code, aber es wäre hilfreich, wenn Sie den Datenrahmen auch teilen könnten. –

Antwort

1

Wenn Sie wollen einfach nur wissen, wie oft Ihre Spalte 1 höher als Spalte 2, Sie müssen nicht eine Schleife verwenden:

counter <- sum(dataframe$column1>dataframe$column2) 

sum(dataframe$column1>dataframe$column2) gibt Ihnen ein Vektor der Länge nrow(dataframe) mit TRUE und FALSE, wenn die Bedingung verifiziert ist, und R dieses Element für Element mit Vectoren.

Dann, wenn Sie es sum, TRUE als 1 und FALSE als 0 betrachtet wird, so gibt es Ihnen, wie oft die Bedingung beetween die beiden Spalten überprüft wird.

+0

Ich schätze die prägnante Lösung mit dem Befehl sum, aber ich muss diese Zuweisung mithilfe des Kontrollflusses durchführen, weshalb ich eine Schleife verwendete. Die Spalten im Datenrahmen, die ich referenziere, haben sowohl Zahlen als auch leere Werte. Ich habe den obigen Code modifiziert, indem ich in der Zeile unter dem Counter = counter + 1 eine print (counter) -Anweisung gesetzt habe, aber wenn ich die Schleife ausfühle, bekomme ich keine Ausgabe statt des aktuellen Counters. Es ist mir unklar, was ich falsch mache, also würde ich sehr schätzen weitere Anregungen – learningcompsci

+0

Ich habe es gerade zur Arbeit. Danke für die Hilfe. – learningcompsci

Verwandte Themen