Hallo ihr Lieben,
folgendes: Ich habe einen Datensatz in dem eine Variable der BMI ist. Jetzt möchte ich eine Messinvarianzprüfung machen, ob mein Modell gleichermaßen in der Gruppe untergewichtiger (Datensatz01$BMI<=17.5), normalgewichtigen (Datensatz01$BMI >17.5 & <25) und übergewichtigen (Datensatz01$BMI >= 25) Kindern gleichermaßen gilt. Dafür müsste ich eine neue Spalte in meinen Datensatz einfügen, in der für die entsprechenden BMI Werte die jeweilige Gewichtsklasse steht (UG/NG/ÜG).
Wie würdet ihr das anstellen? hist() oder über die which() Funktion? Aber wie bekomme ich das an meinen Datensatz ran? Für Antworten wäre ich sehr dankbar!
BMI Werte in Gewichtsklassen einteilen
Re: BMI Werte in Gewichtsklassen einteilen
Hallo JRM,
willkommen im Forum!
Hier habe ich schonmal etwas zu einem gleichartigen Problem geschieben.
viewtopic.php?f=7&t=800&p=3454#p3444
Gruß, Jörg
willkommen im Forum!
Hier habe ich schonmal etwas zu einem gleichartigen Problem geschieben.
viewtopic.php?f=7&t=800&p=3454#p3444
Gruß, Jörg
Re: BMI Werte in Gewichtsklassen einteilen
Ich würde ?cut dafür verwenden:
Code: Alles auswählen
df <- data.frame(BMI = rnorm(100, 20, 5))
hist(df$BMI)
df$classes <- cut(df$BMI, breaks = c(min(df$BMI), 17.5, 25, max(df$BMI)), include.lowest = TRUE)
df$classes
df
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
- databraineo
- Beiträge: 10
- Registriert: Mo Apr 02, 2018 8:20 am
Re: BMI Werte in Gewichtsklassen einteilen
Hi JRM,
alternativ könntest Du auch verschachtelte if-else benutzen, dann könntest Du gleich die Labels als String setzen. Prinzipiell ist die cut-Funktion aber wohl die bessere Wahl, auch wenn der Output vom Typ factor ist, von dem ich kein großer Freund bin. Kann man natürlich aber konvertieren.
Für die cut-Funktion von EDi würde ich noch die Labels mitgeben:
Viele Grüße,
Holger
alternativ könntest Du auch verschachtelte if-else benutzen, dann könntest Du gleich die Labels als String setzen. Prinzipiell ist die cut-Funktion aber wohl die bessere Wahl, auch wenn der Output vom Typ factor ist, von dem ich kein großer Freund bin. Kann man natürlich aber konvertieren.
Code: Alles auswählen
Datensatz01$Gewichtsklasse <- ifelse(Datensatz01$BMI<=17.5,"UG",
ifelse(Datensatz01$BMI<25,"NG",
ifelse(Datensatz01$BMI>=25,"ÜG",NA)))
Code: Alles auswählen
df$classes <- cut(df$BMI, breaks = c(min(df$BMI), 17.5, 25, max(df$BMI)), include.lowest = TRUE, labels=c("UG","NG","ÜG"))
Holger
Lasst uns helfen, dass Menschen mittels Datenanalyse intelligente Entscheidungen treffen
Website: Databraineo - Data Science Blog
Twitter: @databraineo
Facebook-Gruppe: Data Science Deutschland
Website: Databraineo - Data Science Blog
Twitter: @databraineo
Facebook-Gruppe: Data Science Deutschland