Die Stata-Funktionen max()
und min()
erfordern zwei oder mehr Argumente und arbeiten zeilenweise (über Beobachtungen), wenn eine Variable als eines der Argumente angegeben wird. Dokumentiert bei z.B. help max()
. Die egen
Funktionen max()
und min()
können nur innerhalb von egen
Anrufe verwendet werden. Sie könnten mit einzelnen Variablen angewendet werden, aber ihre Verwendung zur Berechnung einzelner Maxima oder Minima ist grob ineffizient, es sei denn, es ist ausnahmsweise notwendig, das einzelne Ergebnis in einer Variablen zu speichern. Dokumentiert mit Ausnahme der Warnungen unter help egen
.
Keine Annäherung, die Sie in Betracht ziehen, funktioniert, ohne mehr Kreisverkehr zu werden. Betrachten
su x, meanonly
gen x_index = (x - r(min))/(r(max)- r(min))
Unter bestimmten Umständen könnte es effizienter sein, um die Reichweite zu berechnen nur einmal:
su x, meanonly
scalar range = r(max) - r(min)
gen x_index = (x - r(min))/range
In einem Programm, wäre es in der Regel besser, den skalaren einen temporären Namen zu geben.
Innerhalb egen
Anrufe kann eine egen
Funktion nur einmal aufgerufen werden.
Danke, atm Ich bin mehr mit Lesbarkeit als Effizienz beschäftigt. Wäre es gleichwertig, wenn ich "su x, meanonly" durch "qui su x" ersetzen würde? – snoram
Nein; das ist nicht gleichwertig. Dies lässt sich leicht aus "help summarize" ableiten. Zusammenfassen bedeutet mehr als nur zusammenfassen. –
Ich meine Äquivalent ** für unseren Zweck hier ** r() danach zu nennen. – snoram