gpt4 book ai didi

if-statement - Stata 中的条件 if 和编程 if

转载 作者:行者123 更新时间:2023-12-01 10:52:08 28 4
gpt4 key购买 nike

我想了解在 Stata 中编程 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 查看价格的第一个观察值,然后看看是否大于指定数则执行程序。但是,这显然不是我在这里看到的。在这方面的任何帮助将不胜感激。

最佳答案

您看到了预期的行为。

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 |
+------------------------------------------------------------------------------------------+

所以第一个价格观察是 4,099 美元。当您运行“条件”if 时,如 sum price if price > 4499,Stata 会找到 price 超过 4,499 的观测值,然后运行 ​​summarize 指挥那些观察。有 48 个这样的观察结果。

当你做一个“如果编程”时,执行是:

  1. Stata 到达if 语句并判断条件是否满足。
  2. 如果满足条件,则进入if block 并执行代码。
  3. 如果不满足条件,Stata 会跳过结束 并忽略 if 代码。

因此,当您执行 if price > 4000 { ... } 时,Stata 查看第一个观察值,发现价格大于 4,000 并继续执行代码。由于 if block 中的 summarize 没有条件,因此执行命令时会包含所有观察结果。当您执行 if price > 5000 { ... } 时,Stata 会发现条件不满足并跳过 { ... } 中的代码。

if 限定符和if 语句之间的区别是explained by StataCorp in their FAQs .

关于if-statement - Stata 中的条件 if 和编程 if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17810731/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com