• Index

数据生成与转化的命令

Reads: 20138 Edit

仍以以上面的宏观经济数据为例来说明!

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


获取案例数据,请关注微信公众号并回复:Stata_dt1


Comments

Make a comment

  • Index