仍以以上面的宏观经济数据为例来说明!
1 g/replace 命令
g命令可以创建新的变量。
创建gdp的对数变量:
g lngdp=ln(gdp)
创建income的对数变量,并且将新变量放置于income变量后面:
g lnincome=ln(income),a(income)
创建export的对数变量,并且将新变量放置于export变量前面:
g lnexport=ln(export),b(export)
replace命令可以替换现有变量的值
将gdp变量数据缩小100倍:
replace gdp=gdp/100
replace命令可以和g命令组合使用。
生成虚拟变量D,2015年以前D=0,2015年以后D=1:
g d=0 if year<=2015
replace d=1 if year>2015
2 egen 命令
g命令支持的函数不多,尤其是在生成分组统计变量时,需要使用egen命令
对gdp变量数据求和:
egen sumgdp=sum(gdp)
如果采用g命令,生产的求和是累积求和效果:g sumgdp_g=sum(gdp)
对gdp变量数据求均值:
egen meangdp=mean(gdp)
3 by/bys和egen组合 命令
如果想进行分组统计,则需要egen配合by/bys命令一起使用!其中,bys等于by命令加上sort选项,所以如果需要排序,直接用bys最方便
按年份对gdp变量数据分组求和(用by):
sort year
by year:egen sumgdp_year_by=sum(gdp)
按年份对gdp变量数据分组求和(用bys):
bys year:egen sumgdp_year_bys=sum(gdp)
按地区对gdp变量数据分组求平均(用bys):
bys prov:egen meangdp_prov_bys=mean(gdp)
4 encode/decode 命令
如果需要根据字符串类型变量来生产对应的数值型变量(这种情况在面板数据xtset命令时经常会遇到),可以使用encode命令来实现。
将数据转换为面板数据类型的命令为:xtset prov year
,但 由于prov是字符串变量,所以会返回如下错误提示:
string variables not allowed in varlist;
prov is a string variable
根据字符串变量prov生成对应的数值型变量:
encode prov,g(id)
此时,再将数据转换为面板数据类型:xtset id year
decode可以根据标签化的数值型变量生产对应的字符串变量
根据标签化的数值型变量id生成对应的字符型变量:
decode id,g(strid)
5 xtset 命令
如果想将数据转换为面板数据类型,需要使用xtset命令
将数据转换为以年份为时间维度,以省份截面维度的面板数据类型:
encode prov,g(id)
xtset id year
清除面板数据格式
xtset,clear
6 destring/tostring 命令
tostring和destring可以将数字转化为字符型变量或数值型变量。
将year变量转化为字符串类型:
tostring year,replace force
有些时候,将数据录入Stata中后,即使变量是数字,但是Stata识别成了字符型变量,可以使用destring将其转化为数值型变量。
将上一步转换为字符型的year变量转化为数值类型:
destring year,replace force
7 substr() 命令
substr()函数可以截取字符串的某些位置,通常结合tostring/destring命令使用
截取年份变量year的后两位:
第一步,如果year变量是数值型,先将其转换为字符型
tostring year,replace force
第二步,采用substr()函数截取后两位
g year_last2=substr(year,3,2) //参数year,3,2分别表示从year变量的第3个字符开始,截取2个字符。
第三步,将year和year_last2变量转化为数值型
destring year year_last2,replace force
8 rename 命令
如果想修改变量的名字,可以使用rename命令
把变量year_last2的名字改为year_2:
rename year_last2 year_2
9 drop/keep 命令
如果想删除某个或多个变量、删除某些样本,可以使用drop命令!
删除前面生成的lngdp、lnexport和lnincome变量:
drop lngdp lnexport lnincome
删除2018年的样本:
drop if year==2018
删除2017年北京的样本:
drop if year==2017 & prov=="北京"
删除第11至18个次序上的样本:
drop in 11/18
keep命令与drop命令正好相反,keep命令是留下希望保留的变量,删除其他的变量!
保留prov、year、gdp、income、export变量,删除其他变量:
keep prov year gdp income export
10 duplicates drop 命令
有些时候,如果录入数据时存在重复的样本,那么可以使用dupicates drop命令将重复数据删除!
为了演示,这里从Stata数据编辑窗口手动复制几行样本数据粘贴到最后
列出重复的数据:
duplicates list year prov
删除重复的数据:
duplicates drop year prov,force
11 clear 命令
如果想要删除所有的样本数据,可以使用clear命令,注意数据无价,一定要做好备份!
删除所有数据:
clear