liegen. Ich muss Codes, die verschiedene Krankheiten repräsentieren, neu kategorisieren, um geeignete Gruppen für die spätere Analyse zu bilden.Überprüfen Sie, ob Dezimalwerte in einem Bereich in R
Viele der Gruppierungen umfassen Bereiche, die wie folgt aussehen:
1.0 to 1.5, 1.8 to 2.5, 3.0
, wo eine andere sein könnte 37.0
Ursprünglich dachte ich, dass so etwas wie dies funktionieren könnte:
x <-c(0:.9, 1.9:2.9, 7.9:8.9, 4.0:4.9, 3:3.9, 5:5.9, 6:6.9, 11:11.9, 9:9.9, 10:10.9, 12.9, 13:13.9, 14,14.2, 14.8)
df$disease_cat[df$site_code %in% x] <- "disease a"
Das Problem ist, 0.1,0.2
usw. werden nicht als in dem Bereich von 0:0.9
liegend erkannt.
Ich verstehe jetzt, dass 5:10
(zum Beispiel) in r tatsächlich 5,6,7...10
Was ist ein besserer Weg, um diese Intervalle zu codieren, so dass die Dezimalstellen werden 0
-0.9
als im Intervall erkannt werden? (Wenn man bedenkt, dass es viele „Mini“ Bereiche liegen und die Idee der Codierung sie alle explizit nicht besonders ansprechend ist)
Diese ersten 2 Antworten funktionieren in diesem Fall, aber was ich nicht genauer spezifiziert habe, ist, dass ich daran interessiert bin, eine Liste verschiedener Bereiche zu erstellen, um eine Anzahl von Dis neu zu codieren verschiedene Werte, die Dezimalzahlen enthalten. Gibt es eine effizientere Methode, um herauszufinden, ob Werte in einem Bereich (einschließlich Dezimalstellen) liegen? – Jacob
@Jacob Bitte bearbeiten Sie Ihre Frage und spezifizieren Sie, was genau Sie brauchen. – Ardavel
Ich nehme an, dass es keine andere Möglichkeit gibt, sie zu definieren, also denke ich, dass ich so vorgehen werde: c (seq (0, .9, by = .1), (seq (5.6.5.9, by =. 1)) usw., es sei denn jemand denkt, dass es einen besseren Weg gibt – Jacob