2016-11-02 3 views
0

Wie erhalte ich die Anzahl der Zeilen, die meiner Bedingung entsprechen: Wert von Spalte 1 ist niedriger als Wert von Spalte2 plus 1?R Vergleich zweier Spalten im selben Datensatz

nrow(subset(dataset, column1 <= column2 + 1)) 

Wenn ich diesen Befehl ausführen ich die folgende Warnung erhalten:

Warnmeldung: In Ops.factor (column2, 1): '+' nicht sinnvoll für Faktoren

Und wenn ich laufe:

nrow(subset(dataset, column1 <= column2)) 

erhalte ich:

Warnmeldung: In Ops.factor (vg (column2)): ‚< =‘ nicht sinnvoll für Faktoren

+2

'Summe (Daten-Set $ ​​column1 <= (Daten-Set $ ​​column2 + 1))' sollten Sie die Anzahl von Wert geben, für die der Bedingung ist 'TRUE' – cderv

+0

... und Datensatz [Datensatz $ Spalte1 <= (Datensatz $ Spalte2 + 1),] gibt Ihnen die Zeilen. –

+2

Bitte lesen Sie auch diesen Thread und versuchen Sie, weitere Details zu Ihren zukünftigen Fragen zu finden: http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

Antwort

0

Könnten Sie bitte die Daten, die Sie verwenden, teilen?

Wenn die Spalte 2 numerische Werte aufweist, versuchen Sie, die Spaltenklasse von Faktor in numerisch zu ändern. Das Gleiche gilt für die Spalte 1.

Vielleicht arbeiten so etwas wie dies könnte:

sum(as.numeric(as.character(dataset$column1)) <= (as.numeric(as.character(dataset$column2)) + 1)) 
Verwandte Themen