Stata数据清理整理(小白)

2019-02-17  本文已影响0人  春雷滚滚_Rita

目录

1.数据导入

1.1导入方法

2.数据管理

2.1浏览排序

2.2基本描述

2.3变量特征

2.4定义新变量

2.5转化—— "reshape"

2.6合并

3.命令结构和选项


数据导入

导入方法

“use” 命令加数据的路径和名称。

先用“cd” 命令进入数据所在的目录,然后用“use” 命令直接加数据的名称来导入数据。

TIPS:适合批量

点击菜单、图标

其他格式文件:

-格式转化(软件StatTransfer)

-"insheet using" 命令导入

数据管理

浏览排序

"list"

"sort"升序

"gsort"降序

基本描述

"describe" 可得本容量、变量个数、变量名称、变量存储类型和格式以及变量的基本含义

“rename”,“format”和“label”分别可修改变量名称、变量格式或变量含义等内容

变量特征

"summarize" 包括与每个变量对应的样本容量、算术平均数、标准差、最小值和最大值等

"ameans, centile, correlate, count"

"inspect, tabstat, tabulate"

定义新变量

在既有变量的基础上定义新变量—— "generate"

eg:定义一个新的虚拟变量“male”。当该变量取值为 0 时,个体为女性;取值为1时,个体为男性。那么我可以运行下面的命令:

generate male = abs(female - 1)

female 是已经存在的变量——其取 1 时,个体为女性;取 0 时,个体为男性。abs(.)是绝对值函数。 那么,一列名为 “male”的新变量就生成了。

generate 的扩展命令—— "egen"及分步生成变量

eg:还可以通过如下的方式来生成

generate male = 0 if female = = 1 replace male = 1 if male = = .

Step1:对所有的女性样本定义变量 male 的取值。

如果只运行第一行命令, 会发现:对于女性样本,male 取值为 0;而对于男性样本,male的取值为“.”,即缺漏。

Step2:补缺漏的值.

我们加上第二行命令。 “replace”命令用来修改变量的取值。第二行命令的含义是:将变量 male 所有缺漏的值更改为 1。

转化—— "reshape"

截面数据被形象地称作宽(wide)数据,而面板数据被形象地称作长(long)数据。

TIPS:注意变量得数据类型

详细说明 :Tips 25:reshape改变数据格式_Stata_新浪博客

合并

导入的数据叫 master data 或 data in memory,合并进来的数据叫 using data 或data on disk

关键点 纽带变量(我认为就类似于数据库里的键,唯一识别码,eg:id)

横向合并,增加变量—— merge

stata区分大小写,同名变量要有相同的存储类型

merge中,纽带变量如果不唯一,则要用选项"uniqusing"或者uniqmaster"

纵向合并,增加样本—— append

匹配合并——

Step1:排序

对所有要合并数据中的纽带变量进行排序

Step2:合并

多数据合并

详细说明:Tips 24:merge合并数据_Stata_新浪博客

匹配合并示例


两个文件,20位学生的成绩

“mid.dta”:期中考试成绩,其中学号为15 的学生没有成绩

“final.dta”:期末成绩,其中学号为09 的学生没有成绩

纽带变量:学号 

 合并算法

把两个文件中的数据分别按照学号排序。

以 master data 中的学号为主,将 using data 中具有相同学号的数据一条一条并进来;如果某学号在 using data 中没有记录,则在相应的变量中用小圆点代替(如09 号学生)。

如果某学号在 master data 中无记录、但在 using data 中有记录(如15 号学生),则暂不合并;待所有在 master data 中存在的学号都合并完之后,再考虑那些只在 using data 中出现的学号。

命令结构和选项

斜体 需要将其替换成相应的内容 (如将 depvar 替换成真正的因变量)

粗体and非斜体 在实际操作中,将其照搬。

方括号 方括号括起来的部分在实际操作中可有可无,没有括起来的部分必须出现在命令中(比如,reg 命令至少要包含 reg 和 depvar 两项。如果是“reg depvar”,就表示拿因变量对常数项作回归)

选项 “options”之前还得加个逗号。


命令示例:

试运行regress并解读

命令语句:reg wage educ exper if female= =1 in 1/100 [aweight=educ], noc l(90)

这条命令是拿工资对教育水平和工作经验作回归,回归的样本限定为序号从 1 到 100 中的女性;考虑到可能存在的异方差,用教育水平作权重;此外,回归不包括常数项,且需要报告 90%水平上的置信区间。

上一篇下一篇

猜你喜欢

热点阅读