Seite 1 von 1

Niedrigster Werte innerhalb einer Wertegruppe

BeitragVerfasst: Sa 30. Jun 2012, 20:12
von Tobi
Hallo zusammen,

ich habe folgende Datenstruktur vorliegen:

Zeile - Kategorie- Wert
1 - 112 - 5
2 - 112 - 7
3 - 423 - 2
4 - 423 - 3
5 - 423 - 6
6 - 423 - 8
7 - 250 - 9
8 - 250 - 7
9 - 250 - 6
.....

Die Kategorien sind also numerisch nicht durchgehend. Ich möchte nun für jede einzelne Kategorie den jeweils niedrigsten Wert herausfinden und mit einer Dummyvariable kennzeichnen. In diesem Falle würden also die Zeilen 1, 3 und 9 gekennzeichnet werden.
Kann mir da jemand weiterhelfen, wie das mit einer Schleife funktioniert? Ich komme selbst gerade nicht drauf.
Vielen Dank & viele Grüße

Tobi

Re: Niedrigster Werte innerhalb einer Wertegruppe

BeitragVerfasst: So 1. Jul 2012, 14:36
von daniel
In den Variablen stehen nur integer Werte? Dann sind hier zwei Wege.

Code: Alles auswählen
bys Kategorie : egen min = min(Wert)
bys Kategorie : replace min = (Wert == min)


Code: Alles auswählen
qui levelsof Kategorie ,l(lvls)
g byte min = .
foreach l of loc lvls {
    su Wert if (Kategorie == `l') ,mean
    qui replace min = (Wert == r(min)) if (Kategorie == `l')
}

Re: Niedrigster Werte innerhalb einer Wertegruppe

BeitragVerfasst: Di 3. Jul 2012, 13:36
von Tobi
Die zweite Variante hat wunderbar funktioniert....allerbesten Dank dafür!
Ich hoffe, mich bei zukünftig auftretenden Überforderungen wieder hilfesuchend hier äußern zu dürfen!

Re: Niedrigster Werte innerhalb einer Wertegruppe

BeitragVerfasst: So 18. Feb 2024, 20:44
von Rositzky
Interessanter Ansatz, daniel! Die Lösung mit der Schleife sieht sehr effektiv aus und scheint gut zu funktionieren. Es ist schön zu sehen, wie verschiedene Methoden angewendet werden können, um das gewünschte Ergebnis zu erzielen. Vielen Dank für die hilfreiche Antwort!