bedingte wenn-und-Programmierung, wenn in Stata
Ich versuche zu verstehen, den Unterschied zwischen der Programmierung if
und bedingte if
in Stata. Hier ist, was ich Tue.
sysuse auto,clear
#conditional if
sum price if price>4499
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
price | 48 7312.813 3102.784 4504 15906
# programming if
if price>3291{
sum price
}
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
price | 74 6165.257 2949.496 3291 15906
# programming if
if price>5000{
sum price
}
This doesn't give me anything
#programming if
if price>4000{
sum price}
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
price | 74 6165.257 2949.496 3291 15906
Ich Frage mich, warum die Programmierung if
gibt Ausgang für 3291 und 4000 aber nicht 5000. Ich kann verstehen, dass die Programmierung if
sieht auf den ersten Beobachtung in Preis und dann sehen, wenn es größer ist als die angegebene Zahl, und führen Sie dann das Programm. Aber, dies ist eindeutig nicht das, was ich hier zu sehen. Jede Hilfe in dieser Hinsicht wird sehr geschätzt werden.
InformationsquelleAutor Metrics | 2013-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen Sie das erwartete Verhalten.
Also der erste Preis Beobachtung ist $4,099. Wenn Sie führen Sie eine "bedingte" wenn man wie
sum price if price > 4499
, Stata, findet der Beobachtungen, für dieprice
übersteigt 4,499 und dann läuft diesummarize
Befehl auf diesen Beobachtungen. Es gibt 48 solche Beobachtungen.Wenn Sie eine "Programmierung, if", wird die Ausführung ist:
if
Aussage und entscheidet, ob die Bedingung erfüllt ist.}
und ignoriert dieif
code.Also, wenn Sie
if price > 4000 { ... }
, Stata, sieht bei der ersten Beobachtung sieht, dass der Preis größer als 4.000 und Erträge, um den code auszuführen. Da diesummarize
innerhalb derif
block hat keine Bedingung für Sie, wird der Befehl ausgeführt, die mit allen Beobachtungen. Wenn Sie das tunif price > 5000 { ... }
, Stata, sieht, dass die Bedingung nicht erfüllt ist und überspringt den code innerhalb{ ... }
.Den Unterschied zwischen den
if
qualifier und dieif
Aussage ist erklärt sich durch StataCorp in Ihren FAQs.InformationsquelleAutor ChrisP