Day1 stata基本命令

1 年前 · 来自专栏 每日stata学习

*generate(可以简写为gen)

例:gen x1 = x2/x3 :利用x2和x3生成一个新的变量x1,x1 = x2/x3 。
例:gen lx1 = ln(x1):取对数,这里的x1必须是原来数据中没有的变量名。

*replace

例:replace x1 = x1+10 :利用x1+10来产生一个新的变量替换原来的x1,这里的x1必须是原来数据中已经存在的变量名。
例:数据处理时,同一变量x1的数据由两人收集,由于一些原因两人收集的数据存在随机的重合。以x_1为主,用x_2填充x_1中的空白部分,用replace合并数据,replace x_1 = x_2 if x_1 == . 。

*encode

例:转换格式(字符变数字):encode area, gen(new_area)      

*destring

将字符变量转换为数值变量。但字符变量有很多不同的类别(如:标识符变量/分类变量、日期变量、纯数字变量等),只有数字以字符串保存时,可以直接用destring进行转换。

例:destring region,replace //显示region包含非数字字符,没有替换。
例:destring year,replace //显示year变量的所有字符都是数字,被替换为int。

*tostring

将数值变量转换为字符变量,用法同destring。

*merge

例:数据匹配,A数据表与B数据表按地区和时间的数据匹配(m:m)
use A.dta
sort 地区 时间
save temp1
clear
use B.dta
sort 地区 时间
save temp2
clear
use temp1
merge m:m 地区 时间 using temp2
drop _merge
save AB.dta
///到这一步基本已经merge好了,另存为文件AB。
erase temp1.dta
erase temp2.dta
///删除不必要的临时文件,方便以后merge时可以重复应用这两个文件名。

*append

例:数据纵向拼接

*reshape

数据的长短转换。有时候,直接从数据库上下载的数据并不能直接使用,当我们需要转换为stata可以识别的面板数据时,可以借助reshape来快速实现。

例:以常住人口数据为例
先在excel上去掉数据的格式,另存为数值格式;然后统一将“****年”改为“population****”(如:“2021年”改为“population2021”)。
然后将改好的数据保存,导入stata进行长短转换。
reshape long population,i(地区) j(year)
reshape wide population,i(地区) j(year)

*foreach

简单的循环命令,实现对变量的重复操作。

例:定义变量的对数
foreach x of varlist GDP A K L1 L2 L3 H1 H2 H3 H4 con tra income outlays ind_3 ind_2 industrial GDP_per firm{
gen ln`x' = ln(`x')
这上下两段命令的运行结果是一致的。
gen lnGDP = ln(GDP)
gen lnA = ln(A)
gen lnK = ln(K)
gen lnL1 = ln(L1)
gen lnL2 = ln(L2)
gen lnL3 = ln(L3)
gen lnH1 = ln(H1)
gen lnH2 = ln(H2)
gen lnH3 = ln(H3)
gen lnH4 = ln(H4)
gen lncon = ln(con)
gen lntra = ln(tra)
gen lnincome = ln(income)
gen lnoutlays = ln(outlays)