BMI Werte in Gewichtsklassen einteilen

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
JRzumMaster

BMI Werte in Gewichtsklassen einteilen

Beitrag von JRzumMaster »

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!
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: BMI Werte in Gewichtsklassen einteilen

Beitrag von jogo »

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
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: BMI Werte in Gewichtsklassen einteilen

Beitrag von EDi »

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
Bild.
Benutzeravatar
databraineo
Beiträge: 10
Registriert: Mo Apr 02, 2018 8:20 am

Re: BMI Werte in Gewichtsklassen einteilen

Beitrag von databraineo »

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.

Code: Alles auswählen

Datensatz01$Gewichtsklasse <- ifelse(Datensatz01$BMI<=17.5,"UG",
				ifelse(Datensatz01$BMI<25,"NG",
				ifelse(Datensatz01$BMI>=25,"ÜG",NA)))
Für die cut-Funktion von EDi würde ich noch die Labels mitgeben:

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"))
Viele Grüße,
Holger
Lasst uns helfen, dass Menschen mittels Datenanalyse intelligente Entscheidungen treffen

Website: Databraineo - Data Science Blog
Twitter: @databraineo
Facebook-Gruppe: Data Science Deutschland
Antworten