如何在stata中生成虚拟变量(各种情况)?

作者:烟中隐约闪现 | 创建时间: 2023-04-25
如何在stata中生成虚拟变量(各种情况)?

双类别虚拟变量

双类别虚拟变量,顾明思议就是将变量分成两类进行虚拟变量的生成。如性别等等。 我们还是打开我们的老朋友auto.dta sysuse auto gen d=(length>200) 聪明的大家一看就知道,这样就可以生成一个双分类虚拟变量,也就是>200的是一个小于等于200的是一个。 图片是原始数据和生成的虚拟变量的截图

多类别单分类虚拟变量生成

什么是多类别虚拟变量?就是把一个变量的每一个数都分成一类类,我们在生成分类变量时也就是做这一种最容易出现问题。 通常需要分类的变量时,季度变量还有不同的厂商,等等。

观察步骤1中的图片,我们现在相对不同厂商进行分类,这就很难受了。如果,我们想对每一个厂商都进行分类,我们需要使用上面教的gen命令很多次。这个样本的数量级别还好,如果数量级别更大,我们将很难处理这类问题。 这时我们可以使用:tab命令 help tab 我们查看tabulate命令的help,可以发现有一个生成虚拟变量的方法。

使用 tab make,gen(m) 即可生成按照make不同生成虚拟变量

单变量多分类虚拟变量生成

什么意思呢?就是对单一变量进行划分,将多个不同的数据划分成一类。这其实是非常常用的掌握了对大家都很有好处。 其实,生成虚拟变量,如果你是个愣头青,你直接看着数据挨个输入就好。 但是,还是希望大家都能灵活掌握stata的技巧,快人一大步。 观察下面的数据表,是笔者我自己下载的数据,这个是一个时间的数据。这种数据是非常非常常用的,你从数据库下载的季度数据都是这个格式的数据。 有时候你会遇到这样的问题。如果我想按季节分类怎么办呢?

我在这里教大家一种我用的办法,是我自己在实践中总结,可能有更简单的命令,如果你知道可以和我联系,我会加一补充。 第一步 生成分类变量: gen group=0 replace group=1 if regexm(t,"-03-") replace group=2 if regexm(t,"-06-") replace group=3 if regexm(t,"-09-") replace group=4 if regexm(t,"-12-")

tab group,gen(season)

温馨提示

虚拟变量的生成无非是这几类,灵活思考一般可以解决问题
有任何疑问都可以向我提问
点击展开全文

更多推荐