Stata常用命令集锦【计量经济系列(一)】

Stata常用命令集锦【计量经济系列(一)】
     在这里插入图片描述

🌹꧔ꦿ本博客同时收录于stata技术宝典专栏 与 Python数据分析宝典专栏,感谢各位读者的订阅与支持!

✨更多精彩内容,博主持续更新中······



1.数据集的打开、关闭与保存

1.1 导入Excel数据 - import命令

 import excel "E:\stata_projects\data\test1.xlsx", sheet("Sheet1") firstrow

从左到右,依次指定Excel文件目录,sheet工作簿,第一行为列名。


1.2 打开dta数据 -use命令

acemoglu.dta数据集为例。

acemoglu.dta数据集下载链接:https://pan.baidu.com/s/1FkLvieqBOyRlCBId4sxF5w?pwd=ht9j
提取码:ht9j

打开dta文件类型的数据集,使用use命令。

use "E:\stata_projects\data\acemoglu.dta"

clear表示关闭上一个数据集。


1.3 关闭数据集-clear命令

如果上一个打开的数据集是被导入的,则需要使用clear将其关闭,才能打开下一个数据集。
clear命令可以单独使用,

clear
use "E:\stata_projects\data\acemoglu.dta"

也可以写成:

use "E:\stata_projects\data\acemoglu.dta", clear

     在这里插入图片描述


1.4 保存数据-save命令

使用save加保存的文件名及其目录。

save "E:\stata_projects\data\test1.dta"

这里保存为了stata专有的dta数据文件格式。


2.stata运算符

stata支持的运算符如下:

2.1 代数运算符

符号描述
+
-
*
/
^指数

2.2 逻辑运算符

符号描述
!
~
|逻辑或
&逻辑并

2.3 比较运算符

符号描述
>大于
<小于
==等于(一个等号时表示赋值)
~=或!=不等于
>=大于等于
<=小于等于

3. 数据查询

3.1 describe命令

describe用于描述生成内存中的数据集或存储在Stata格式数据集中的数据的摘要。
要获得变量名的紧凑列表,请使用descripe,simple。

语法

describe [varlist] using filename [, file_options]

示例

use "E:\stata_projects\data\acemoglu.dta"
describe

也可以简写为d
     在这里插入图片描述
obs是数据条数,vars是变量个数,12 Mar 2015 20:26是数据文件的修改日期

然后依次是每个变量的:

  • variable name 变量名
  • storage type 存储类型(数据类型),
  • display format 展示格式,
  • value label 变量的值标签,
  • variable label(变量标签)

3.2 list命令

3.2.1 查看一条数据

如果要查看某条数据
则使用list命令

list

list不加任何参数默认查看所有数据。

在上边五个变量中,查看shortnam变量的数据:

list shortnam

呈现效果:
                    在这里插入图片描述


stata中的变量名可以使用前几个字符的简称,使用简称的前提是该简称能够指代的变量名唯一,否则会发生报错ambiguous abbreviation(模棱两可的缩写)。

如查看logem4变量,因为还存在一个logpgp95变量,,所以简可以写成

list loge

而不能写成

list log

3.2.2 条件查询

同时查询shortnam和logem4两个变量,并只要第5个到第10个(总计6个)数据。

指定数据范围使用 in

list s loge in 5/10

                   在这里插入图片描述
第五个到第十个数据中变量logem4大于4.25的。

list s loge in 5/10 if logem4>4.25

                  在这里插入图片描述


4. 删除数据

4.1 keep命令

keep含义为保留,即,将keep命令指定范围外的数据删除。
如保留logpgp95 > 9的数据。

keep if logpgp95 > 9

             在这里插入图片描述

然后需要恢复刚刚删除的数据(才能便于博客的继续展示):

clear

use "E:\stata_projects\data\acemoglu.dta"

(即 先清除所有变量,重新读取文件)


4.2 drop命令

删除logem4大于4的为例

drop if logem4>4

           在这里插入图片描述

如果想要删除变量,则只需要drop加变量名,或者keep加想要保留的变量的变量名。


5. 排序

5.1 sort命令

clear
use "E:\stata_projects\data\acemoglu.dta"

sort logpgp95

按照变量 logpgp95 升序(从小到大)排列。

在这里插入图片描述

5.2 gsort命令

5.2.1 gsort语法

gsort按指定变量的升序或降序排列观察值,所以它和sort的不同之处在于,sort只生成升序排列。且得到的数据结构中没有数据类型为字符串类型的变量。

语法

gsort [+|-] varname [[+|-] varname …] [, generate(newvar) mfirst]


5.2.2 gsort降序

gsort -logpgp95

               在这里插入图片描述


5.2.3 gsort升序

gsort +logpgp95

gsort logpgp95

               在这里插入图片描述


6. 统计分析摘要-summarize命令

summarize计算并显示各种单变量摘要统计信息。如果未指定varlist,则会计算数据集中所有变量的汇总统计信息。

语法

summarize [varlist] [if] [in] [weight] [, options]

且最短可缩写为su

summarize

         在这里插入图片描述


查看更为详细的摘要统计信息,则加上可选参数(options),detail

summarize,detail

执行结果如图所示,其中圈出的部分是每个变量的标签,作为输出表格中每个变量的唯一标识。
             在这里插入图片描述


7.生成新变量 -gen命令

gen是generate的简写,用于生成新的变量。如:

gen y1 = sum( logem4 )

gen y2 = sqrt(logem4)

gen y3 = logem4*2

     在这里插入图片描述


8. 修改数据

数据初始状态如下图所示:
       在这里插入图片描述


8.1 修改单个数据

将第11条数据的avexpr变量的值改为8。

 replace avexpr = 8 in 11

8.2 按条件修改多个数据

将表格中第2条数据到第20条数据范围内,变量logpgp95大于9.8且小于9.99的数据修改为8为例:

replace logpgp95 = 8 in 2/20 if logpgp95>9.8 & logpgp95<9.99

         在这里插入图片描述


9.数据的合并

9.1 纵向合并 -append命令

数据集test1和数据集test2如下:

                  在这里插入图片描述

                在这里插入图片描述


将两组数据纵向合并,保存为test3.dta。

use test1,clear
append using test2
save test3,replace

  其中append命令是将数据集test2纵向合并到了当前数据集(test1),但是并没有更改任何文件。这个时候使用list命令看到的是:
                  在这里插入图片描述

查看test3

use test3,clear

              在这里插入图片描述


9.2 横向合并 merge命令

test4
               在这里插入图片描述
test5

                  在这里插入图片描述

  横向排序需要选择一列作为基准列,这里以变量id为例,合并前需要先使两个合并的数据集有着相同的id(值相同,顺序也要相同),这里先使用sort方法进行排序。

use test4,clear
sort id
save test6,replace
use test5,clear
sort id
merge id using test6
save test7

表格合并结果如图所示
          在这里插入图片描述
指令说明:test4test5为原始数据,这里先将test4的排序结果保存为test6,然后use数据test5,对test5排序。这里将test5作为主数据,将test4的排序结果test6合并在test5上。所以不需要额外保存test5的排序结果。最终,将合并结果保存为test7

此外,合并过程会产生标识变量 _merge,为了不影响数据操作过程,通常使用drop _merge将其删除。

drop _merge

10.数据重整

10.1 reshape命令

stack命令的官方说明文档如下
通过stack命令,可以成功实现如图所示的long数据可wide数据之间的转化。
         在这里插入图片描述
以mywide.dta数据集为例,数据具体如下:
         在这里插入图片描述

将如图所示的wide数据转换为long数据,

命令示例如下:

use mywide
reshape long math economy, i(id name) j(year)

其中i()中的变量名是保持不变的变量名,j()中的变量名是新添加的一列的变量名。
除了指定的不变的变量名之外,只有命名方式为 字符+数字形式的变量名,如economy2003,economy2004才会被合并,且变量名中的数值会作为新的变量的值,而math2003和math2004会变成math,economy2003和economy2004则会变成economy。
不满足这样形式变量名的变量,会保持不变。

处理效果具体如下:
             在这里插入图片描述


沿着上边的命令继续执行,将刚刚得到的long数据再变为wide数据:

只需要将reshape long改为reshape wide,其他部分不变:

reshape wide math economy, i(id name) j(year)

           在这里插入图片描述


10.2 多列转一列 stack命令

还使用mywide数据集:
             在这里插入图片描述
将数据集中的math2003 economy2003 math2004 economy2004四个变量合并成为一个新的变量,且变量名为x:
最后并删除产生的标识变量_stack:

use mywide
stack math2003 economy2003 math2004 economy2004,into(x) clear
drop _stack 

                在这里插入图片描述


10.3 转置 xpose命令

依然使用mywide.dta数据集:
            在这里插入图片描述
将其转置:

use mywide
 xpose, clear

转置结果如图所示,可以看到,原来数据类型为字符串类型的变量,在转置后成为了缺失值。因为每个变量中的所有数据必须属于同一数据类型。
        在这里插入图片描述


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侯小啾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值