If statement Stata中的条件if和编程if
我试图理解Stata中编程If statement Stata中的条件if和编程if,if-statement,conditional-statements,stata,If Statement,Conditional Statements,Stata,我试图理解Stata中编程if和条件if之间的区别。这就是我正在做的 sysuse auto,clear #conditional if sum price if price>4499 Variable | Obs Mean Std. Dev. Min Max -------------+-------------------------------------------------------- p
if
和条件if
之间的区别。这就是我正在做的
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
我想知道为什么编程
if
的输出是3291和4000,而不是5000。我可以理解编程if
查看price中的第一个观察值,然后查看它是否大于指定的数字,然后执行程序。但是,这显然不是我在这里看到的。我们将非常感谢您在这方面提供的任何帮助 您正在看到预期的行为
sysuse auto
. list in 1
+------------------------------------------------------------------------------------------+
1. | make | price | mpg | rep78 | headroom | trunk | weight | length | turn | displa~t |
| AMC Concord | 4,099 | 22 | 3 | 2.5 | 11 | 2,930 | 186 | 40 | 121 |
|------------------------------------------------------------------------------------------|
| gear_r~o | foreign |
| 3.58 | Domestic |
+------------------------------------------------------------------------------------------+
因此,第一个价格观察值是4099美元。当您运行“有条件”if likesum price if price>4499
时,Stata会查找price
超过4499的观测值,然后对这些观测值运行summary
命令。有48个这样的观察结果
当您执行“编程如果”时,执行是:
if
语句并决定是否满足条件}
并忽略If
代码if price>4000{…}
时,Stata会查看第一个观察结果,发现价格大于4000,然后继续执行代码。由于if
块中的summary
没有条件,因此该命令与所有观察值一起执行。当您执行if price>5000{…}
时,Stata发现条件不满足,并跳过{…}
中的代码
if
限定符和if
语句之间的区别是。非常感谢您的参考。