Stata:inlist和inlist2命令介绍

理论模型可以简洁、凝练地抽离出经济现象的本质,使我们能够进行更深层次的思考和分析。然而,建立理论模型并非易事,若能将 理论和实证有机结合,那更加难能可贵了。

为此,我们邀请到了中山大学岭南学院郭凯明副教授,与大家一同学习理论模型的构建。郭老师一直专注于经济转型与中国经济方面的研究,发表论文近 40 篇,其中《经济研究》7 篇。

郭老师将从模型设定初衷、最基本的假设条件入手,通过讨论各种可能的建模思路和弯路,让学生不自觉中已经建立起理论分析的思维模式。最终的目标是:让学生不仅能「读懂模型」,还能「折腾模型」—— 可以自己修改甚至新设模型。

扫码直达课程主页:

作者:张立芳 (陕西师范大学)
邮箱:zhanglifangceee@163.com


目录

  • 1. 背景介绍

  • 2. 命令介绍

    • 2.1 inlist 命令

    • 2.2 inlist2 命令

  • 3. 具体示例

  • 4. 相关推文


温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:

1. 背景介绍

在清洗数据过程中,我们经常需要对变量进行重新赋值。例如,基于我国各个省份定义 EastMidlleWest 三个虚拟变量,或者基于国家名称或代码定义 Yes_OECD 国家虚拟变量。针对上述问题,常用方法是通过 if 条件语句对变量赋值。但是当类别较多时,if 命令语句将十分繁琐。为此,本文将介绍两个新命令 inlistinlist2,以试图更加高效简洁地处理这些工作。

2. 命令介绍

2.1 inlist 命令

该命令为系统自带,不需要安装。inlist 具体语法如下:

*命令语法
inlist(z,a,b,...)
  • 语法描述:当 z 满足 a,b,... 中的任何一个,则返回值为 1,否则为0。所有参数必须是实数或者字符型数据,其中数值型参数的个数需要在 2~250 之间,字符型需要在 2~10 个字符;
  • 适用范围:所有实数或者字符串;
  • 返回值:0 或 1。

2.2 inlist2 命令

inlist 相比,inlist2 有两个主要变化:

  • 首先,在 inlist2 命令中,字符串类型的参数不需要用引号 ' ' 括起来;
  • 其次,inlist2 命令运行后会生成一个新的变量,返回值为 0 或 1。
*命令安装ssc des inlist2  //程序包介绍ssc install inlist2, replace
*命令语法
inlist2 varname [, options]

其中,varname 为需要处理的变量,类似于 inlist 命令中的 z。option 主要包括以下选项:

  • values(a,b,c,...):所有参数必须是实数或者字符串。如果是字符串,需要区分大小写,且字符串中不能包含逗号;
  • name(string):生成一个新的变量,默认变量名是 inlist2

3. 具体示例

接下来,我们用一个例子来具体学习一下这两个命令的用法。首先,手动生成一个简单的数据文件。

clearinput str10 prov 天津北京上海广东福建山西陕西宁夏河南河北山东新疆黑龙江endsave 'data_inlist', replace //保存数据,以备后用

然后,生成 “东部” 虚拟变量。其中,东部包括:北京、天津、河北、辽宁、上海、江苏、浙江、福建、山东、广东、广西、海南 12 个省、自治区、直辖市。

gen East = 0
replace East = 1 if prov=='天津' | prov=='北京' | prov=='上海' | prov=='广东' | prov=='福建' | prov=='山东'

或将上述两句合并为一句命令。

gen East2 = (prov=='天津' | prov=='北京' | prov=='上海' | prov=='广东' | prov=='福建' | prov=='山东')

若使用 inlist 命令,语法会简化很多。需要注意的是,inlist 后面要直接加 (),不可加空格,否则会报错。同时,每个字符串都需要用引号 ' ' 括起来。

gen East3 = inlist(prov, '天津', '北京', '上海', '广东', '福建', '山东')

但这种定义方法有个很大的限制,即枚举的省份个数不能超过十个。一个变通的方法是,生成一个数值变量,用以标记省份名称,进而把每个省份的数字编码放到 inlist() 函数的列表中。之所以如此,主要是因为 inlist() 函数最多可以接受 250 个数字类型的列表元素。具体做法如下:

. encode prov, gen(provNum) label(provNum). label list provNumprovNum:           1 上海           2 北京           3 天津           4 宁夏           5 山东           6 山西           7 广东           8 新疆           9 河北          10 河南          11 福建          12 陕西          13 黑龙江

在这里,我们使用  encode 命令产生了 prov 变量的「数字-文字对应表」,并将其数值编码存储在新变量 provNum 中。此时,可以使用如下命令定义虚拟变量 East4

gen East4 = inlist(provNum, 1,2,3,5,7,11)

上述功能也可以使用 inlist2 命令实现。inlist2 命令对数值型或字符型参数的个数都没有限制。需要注意的是,inlist2 命令中字符串不能加引号 ' ',否则会报错。

inlist2 prov, values(天津, 北京, 上海, 广东, 福建, 山东) name(East5)replace East5 = 0 if East5==.

当然,上述五种方法得到的结果完全相同。

. list prov East*, clean noobs

prov East East2 East3 East4 East5
天津 1 1 1 1 1
北京 1 1 1 1 1
上海 1 1 1 1 1
广东 1 1 1 1 1
福建 1 1 1 1 1
山西 0 0 0 0 0
陕西 0 0 0 0 0
宁夏 0 0 0 0 0
河南 0 0 0 0 0
河北 0 0 0 0 0
山东 1 1 1 1 1
新疆 0 0 0 0 0
黑龙江 0 0 0 0 0

如此简洁的命令,你学会了吗?

4. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 数据处理, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题:数据处理
    • Stata数据处理:缺失值与多重补漏分析(一)
    • Stata数据处理:缺失值与多重补漏分析(二)
    • Stata数据处理:缺失值与多重补漏分析(三)
    • Stata数据处理:一文读懂微观数据库清理(上)
    • Stata数据处理:一文读懂微观数据库清理(下)
    • Stata数据处理:iebaltab和ieddtab命令介绍-T208
    • Stata数据处理:ietoolkit命令组介绍-T207
    • Stata数据处理:清洗CFPS数据库
    • Stata数据处理:通过API获取经济数据
    • Stata数据处理:超大Excel文档如何读入
    • 滚动吧统计量!Stata数据处理
    • Stata数据处理:各种求和方式一览
    • Stata数据处理:字符型日期变量的转换
    • Stata数据处理:统计组内非重复值个数
    • Stata数据处理:赫芬达尔指数-(hhi5)-命令介绍
    • Stata数据处理:物价指数-(CPI)-的导入和转换
    • Stata数据处理:分年度-行业计算销售额前四名的行业占比
    • Stata数据处理:快速读取万德-Wind-数据-readWind2
    • Stata数据处理:用-astile-快速创建分组
    • Stata数据处理:用-efolder-快速生成文件夹和子文件夹
    • Stata数据处理:FRED数据导入问题的解决方案
    • Stata数据处理:ftree命令-用txt文档记录文件夹结构
    • Stata数据处理:ascol-mtoq-日收益转周-月-季-年度数据
    • Stata数据处理:import-fred-命令导入联邦储备经济数据库-FRED
    • Stata 数据处理:nrow + labone 的巧妙使用
    • Stata数据处理:面板数据的填充和补漏
    • Stata: 约翰霍普金斯大学 COVID-19 疫情数据处理及可视化
  • 专题:面板数据
    • Stata数据处理:xtbalance-非平衡面板之转换
    • Stata数据处理:如何提取某个变量有记录的第一年的年份

New! Stata 搜索神器:lianxhsongbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

(0)

相关推荐