Stata数据处理:清除命令介绍和对比-clear-drop-discard

发布时间:2023-06-29 阅读 3744

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者:唐林 (苏州大学)
邮箱tlwork77@163.com


目录


1. 命令介绍

1.1 clear 命令介绍

clear 命令用于清除 Stata 内存中的数据。该命令功能强大,应用广泛,基本可清除 Stata 内所有数据。

clear
clear [meta|results|matrix|programs|ado|rngstream|frames|collect]
clear [all|*]

其中,clear 表示清除 Stata 内存中的数据集合和数据标签。clear allclear * 表示对 Stata 内存中的任何使用痕迹全部清除,两者效果一致。此外,常用的 clear results 表示清除 Stata 中的回归结果,clear ado 表示清除自动加载的 ado 编辑器。

为更清晰的了解 clear 命令的运行。接下来将首先介绍 Stata 的工作机制,以此为基础来详细地解释 cleardropdiscard 命令。

1.2 Stata 工作机制

一般而言,在 Stata 中输入 use 命令,可以实现复制硬盘中所储存的数据至 Stata 的内存中。在这块内存中, Stata 会自动细分不同的板块以此单独储存 Data 、Matrix 、Frames 和返回值等等内容。

在这种情况下,clear 命令的使用可以分为以下两种情况:

第一种情况:clear 房间类型。如前所述,启动 Stata 时,电脑会分配给 Stata 一块内存空间 (一座大房子)。Stata 会把大房子分成若干个小房间,分类存储 Data、Matrix、返回值、程序等对象。好处是易于分类管理与调取,可以清除指定内容,进而释放内存。若想清空某个小房间,可以使用 clear 房间类型 命令,常用的如下:

  • clear:清空内存中的数据 (分配给 Stata 的内存中的 Data 那一块空间);
  • clear matrix:清空内存中的矩阵对象;
  • clear results:清空内存中的返回值,如 r(mean)r(N)e(r2) 等;
  • clear ado :清除内存中的 ado 文档;
  • clear all:清空分配给 Stata 的 所有内存空间。

第二种情况:use "D:/myData/auto.dta", clearclear 选项虽然放在命令的末尾,但却是先清空内存中的数据文件。上述命令等价于以下命令:

clear
use "D:/myData/auto.dta"

然后,Stata 从硬盘 (D:/myData/) 拷贝 auto.dta,将其副本读入内存。

  • 好处:速度快。后续分析都以此副本数据为基础,不需要反复从硬盘中读数据;
  • 坏处:无法处理大数据 (取决于你的内存大小)。

2. 命令对比

cleardropdiscard 命令均可以在 Stata 中实现清除内存的作用,但这三个命令在清除对象上存在较大的差别。该部分将对这三个命令进行仔细区分,以帮助使用者选择合适的命令进行操作。

2.1 drop 命令介绍

drop valist
drop if exp
drop in range [if exp]

drop 命令用于删除变量 (按列删除) 或符合特定条件的观察值 (按行删除)。例如,若执行如下命令:

sysuse "auto.dta", clear
list make price mpg rep78 in 1/10, clean

* 删除列
drop mpg            

* 删除符合条件的行
drop if rep78==. | price>10000

删除过程若下图所示:

drop 命令用于删除特定行。比如,若执行如下命令:

sysuse "auto.dta",clear
list make price mpg rep78 in 1/10, clean

* 删除前 2 行
drop in 1/2

* 删除前 5 行中满足其他条件
drop in 1/5 if rep78==.

删除过程如下图所示:

drop 功能相似,但存在区别的命令还包括:keepprogram dropmata drop 等。keep 命令语法与 drop 命令一致,但其功能恰巧与 drop 命令相反,用来保留变量或者某些观测值。此外,keep 命令也可以用于数据的横向和纵向切分。

执行以下命令,完成数据横向切分:

sysuse "auto.dta",clear
keep make price mpg rep78 foreign
save "d:\data\auto_sim01.dta", replace

上述命令完成了将四个变量另存至 D:\data 文件夹中。换言之,根据数据横向结构做到将原始数据分为不同的数据表。

执行以下命令,完成数据纵向切分:

sysuse "auto.dta",clear
keep if foreign==0
save auto_domestic.dta,replace

上述命令实现以纵向数据结构将 foreign=0 的观测值另存为 auto_domestic.dta 的数据文件中。

program drop 命令主要用于清除 Stata 内存中所运行程序。启动 Stata 时,Stata 中并未运行任何程序,但当我们进行了一系列回归分析后,内存中运行的程序,特别是格式为 .ado 的文件逐渐增多。此时 program drop 命令将发挥清除内存的作用。比如,执行以下命令:

* 删除某个程序
program drop [program_name]

* 删除全部程序
program drop _all

mata drop 命令用于清除 Stata 运行内存中特定的矩阵或公式。比如,可以通过以下命令实现:

* 删除某个矩阵 A
mata drop A

* 删除某个名为 foo() 的公式
mata drop foo()

2.2 discard 命令介绍

discard 适用于清除 Stata 运行过程中所有自动加载的程序和储存的运行结果等。主要用于以下几种情况:

  • 清除由最新估计命令和任何其他命令保存的估计结果;
  • 关闭打开的图形和清除所有的子集;
  • 清除实例和关闭所有对话和其他内容。

但需特别注意的是,该命令仅仅清除 Stata 中正在运行的内容,但并不会清除内存中的数据集。比如,若执行以下命令:

sysuse "auto.dta",clear
reg price mpg rep78
est store reg
discard

通过输入 discard,可以清除内存中的返回值,但并不会像 clear 清除已读取的数据。

3. 结语

clear 命令功能强大,常用于清除 Stata 中整个数据集和数据标签,但其无法清除数据集中的某一变量。为此 drop 命令可补充此不足,用于清除数据集中某一变量和样本。但单独运行 clear 命令相当于同时运行 drop _alllabel drop _all

discard 命令与 clear 命令在某些方面一致,即无法清除数据集中某一变量和样本,但其也无法清除 Stata 当前使用的数据集和数据标签,该命令常用于清除后台内存中的运行结果等。

4. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 数据处理, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,700+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxhsongbl 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh