如何用Stata完成(shui)一篇经济学论文(七):判断语句

基本判断语句 if

与其他语言类似,Stata中也有if, if else,和while,不过我还从来没有在Stata用过后两个,秉着这个教程也是一个快速教程,这里我就只介绍if。如果大家对后两个感兴趣可以自行搜索,或者直接Stata里写help while/help if,查看官方文档主要看Syntax解释部分和最后的example,反正中间的内容我没怎么看,看了也忘了…

言归正传,if语句一般接在基本命令的后面,如:

* 生成一个新变量x结果是1,如果匹配的_merge等于1 *
gen x = 1 if city == "北京"
* 删除PM25变量小于100的数据行 *
drop if PM25 < 100
* 对所有AQI大于100的数据进行回归分析 *
reg y x1 x2 x3 if AQI > 100

这里我们也引出了判断条件:

相等: ==
大于: >
小于: <
大于等于: >=
小于等于: <=

根据数据特征,大家就自行练习。

逻辑判断:或且非

有时if后面我们会接两个甚至多个判断条件,这个时候就要用到逻辑判断。

  1. 或:|
    关于什么叫或,大家应该都清楚,我就简单提一下,只要满足或的并列条件中其中一个,返回的判断结果就是true。举个例子:
* 把没有匹配上的数据都删除 *
drop if _merge == 1 | _merge == 2

这里,只要数据集中的_merge变量等于1或者等于2就会被删除,或语句我们使用符号" | "来表示。

  1. 且:&
    且就是两个条件都满足,才返回true。直接上例子:
* 把age小于18且性别为1的数据删除 *
drop if age < 18 & gender == 1
  1. 非: !=
    如果判断语句不满足,则返回true:
* 如果年份不是2020 则生成新变量x为666
gen x = 666 if year != 2020

用()判断

用括号判断的语句其实就是生成0或1的哑变量,我们用if语句也能完成,而且if语句功能更丰富。那这里我为什么要介绍这个呢?除了装逼我也想不出别的理由了。先上代码:

g post = (x>0)

什么意思?我用if语句解释一下:

g post = 1 if x > 0
replace post = 0 if post != 1

需要注意的是,()的判断只能生成0或1的哑变量,不能生成其他的值。所以我觉得这个作用挺有限的,只适合装杯。

猜你喜欢

转载自blog.csdn.net/Hedy_mail/article/details/108326172