2017-11-14 3 views
0

ich den folgenden Code bin mit einer Teilmenge von Daten mit den folgenden Bedingungen zurück:R bedingte Teilmenge gibt ungeradee Ausgabe ohne Warnungen

  1. sample_id ist enthalten „BLUE“
  2. result_value field> result_limit (diese zwei Spalten enthalten nur Zahlen)

table1 <- subset(table1, grepl("*BLUE", sample_id) & (result_value > result_limit)) 

zuerst war ich einen schlechten Ausgang bekommen (keine Warnungen, aber Datensätze, die nicht der zweiten Bedingung folgten), dann erkannte ich, dass der Ergebniswert & result_limit Spalten als "Zeichen" und nicht "numerisch" klassifiziert wurden. Es funktionierte gut, nachdem sie als numerisch neu klassifiziert wurden. Meine Frage ist, sollte nicht R eine Warnung zurückgeben, da ich eine Berechnung auf nicht numerischen Feldern ausführte, bevor es eine funky Ausgabe zurückgibt? Und weiß jemand, was für seltsame Dinge es tun könnte, wenn er diesen Test auf Zeichenfeldern durchführt?

Antwort

1

Vergleichen Charakter ist posibble. Zum Beispiel

> 'A' < 'a' 
[1] FALSE 
> 'a' < 'b' 
[1] TRUE 
> 'a' > 'b' 
[1] FALSE 
> '1' > '2' 
[1] FALSE 
> '1b' > '1a' 
[1] TRUE 
### check that 
> '12311231' > '543242' 
[1] FALSE 
+0

Interessant. Dies könnte nützlich sein! Ich muss sorgfältiger auf die richtige Klassifizierung achten! – user2479802