0
点赞
收藏
分享

微信扫一扫

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


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

文章目录


在这里插入图片描述


    ʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞ
                 在这里插入图片描述在这里插入图片描述在这里插入图片描述


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

1.1 导入Excel数据

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

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


1.2 打开dta数据

以acemoglu.dta数据集为例。

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

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

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

1.3 关闭数据集

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

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

也可以写成:

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

     在这里插入图片描述


1.4 保存数据

使用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。

语法

示例

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

语法


5.2.2 gsort降序

gsort -logpgp95

               在这里插入图片描述


5.2.3 gsort升序

gsort +logpgp95

gsort logpgp95

               在这里插入图片描述


6. 统计分析摘要summarize

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

语法

且最短可缩写为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 test5,replace
use test4,clear
sort id
merge id using test4
save test6

表格合并结果如图所示
          在这里插入图片描述
合并过程会产生标识变量 _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

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


本次分享就到这里,小啾感谢您的关注与支持!
🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ

举报

相关推荐

0 条评论