专栏名称: 连享会
连玉君老师团队分享,主页:lianxh.cn。白话计量,代码实操;学术路上,与君同行。
目录
相关文章推荐
秦皇岛晚报  ·  【中国好手艺117】铁艺灯笼 ·  9 小时前  
秦皇岛晚报  ·  【中国好手艺117】铁艺灯笼 ·  9 小时前  
光明日报  ·  中国好手艺:铁艺灯笼 ·  11 小时前  
可爱多手工艺术  ·  旧牛仔裤零碎布头旧衣服都剪成了拼图,这么多妙 ... ·  3 天前  
51好读  ›  专栏  ›  连享会

Stata小白系列之一:调入数据

连享会  · 公众号  ·  · 2025-02-21 22:00

正文

👇 连享会 · 推文导航 | www.lianxh.cn

图片
图片

作者:谢作翰 |  连玉君 | (知乎 | 简书 | 码云)

编者按:从本期开始,Stata 连享会将推出「Stata 小白系列」推文,介绍数据导入、命令语法等 Stata 入门知识,以帮助各位尽快掌握 Stata 的基本操作。需要注意的是,本文所有数据可通过 lxhget xzhstata.pkg, replace 命令获取。


目录

  • 1. 调入 Stata 格式数据

    • 1.1 use 命令

    • 1.2 sysuse 命令

    • 1.3 webuse 命令

    • 1.4 bcuse 命令

    • 1.5 freduse 和 import fred 命令

    • 1.6 copy 命令

  • 2. 调入其他格式数据

    • 2.1 insheet 命令

    • 2.2 infile 命令

    • 2.3 infix 命令

    • 2.4 import 命令

    • 2.5 xls2dta 命令

  • 3. 相关推文



1. 调入 Stata 格式数据

1.1 use 命令

use [varlist] [if] [in] using filename [, clear nolabel]

其中,

  • use :是打开数据的命令语句;
  • varlist :代表变量名称;
  • if :是条件语句,用于限定样本范围;
  • in :是范围语句,很少用;
  • using filename :指定数据文件路径和名称。

具体来看,如果想要调入文件中全部数据,输入标准命令如下:

. use "D:\连享会\useauto.dta", clear //为了演示方便,我们将 auto 数据存放在本地

说明: use 是表示调入的命令语句, D:\连享会\auto.dta 则指定了数据文件的路径和名称。

有时,并不需要将数据文件中的所有变量全部调入,因为原始数据内容丰富,含有很多变量,而研究可能只涉及其中的几个变量。例如,我们只关心 auto 数据集中的 make price 这两个变量,应该使用如下命令:

. use make price using "D:\连享会\useauto.dta", clear

这个命令中 use make price 部分表示需要打开 make price 两个变量, using "D:\连享会\auto.dta" 部分表示打开的数据文件路径和名称。

有时,原始数据将不同特征的样本混杂在一起,而现实的研究却要求将不同的样本分开研究,例如分别研究男性、女性的情况,城市、农村的经济问题,等等。这时就需要只调入具有这些特征的样本数据进行分析。在本例中,调入 auto 文件中进口车样本数据的命令为:

. use "D:\连享会\useauto.dta" if foreign == 1, clear

说明:这个命令语句中最重要的就是 if 语句,该命令执行的结果就是让 Stata 仅仅读入符合条件的样本数据。在本例中, foreign == 1 就表示是进口车,故调入的数据是进口车的数据。

有时,原始数据文件的样本数量过于庞大,例如人口普查的数据动辄千百万,可是一般的研究大部分不需要全部的样本,只需要部分样本即可。例如,若只需要调入 auto 数据文件中第 5 到第 10 个样本的数据,可以使用如下命令:

. use "D:\连享会\useauto.dta" in 5/10, clear

说明: in 5/10 表示选取的样本序号,即选取第 5-10 行观察值。

1.2 sysuse 命令

安装 Stata 时,会自带一些供练习所用的范例数据集。在命令窗口中输入命令 help dta_examples ,可以查看完整的数据列表。

auto.dta            use | describe
auto2.dta use | describe
autornd.dta use | describe
bplong.dta use | describe
bpwide.dta use | describe
cancer.dta use | describe
census.dta use | describe
citytemp.dta use | describe
citytemp4.dta use | describe
educ99gdp.dta use | describe
gnp96.dta use | describe
lifeexp.dta use | describe
network1.dta use | describe
network1a.dta use | describe
nlsw88.dta use | describe
nlswide1.dta use | describe
pop2000.dta use | describe
sandstone.dta use | describe
sp500.dta use | describe
surface.dta use | describe
tsline1.dta use | describe
tsline2.dta use | describe
uslifeexp.dta use | describe
uslifeexp2.dta use | describe
voter.dta use | describe
xtline1.dta use | describe

Stata 内置有以上数据集,在练习命令时我们不必舍近求远。例如,auto 数据集大名鼎鼎,笔者在不少教程中见过。由于 auto 数据库同时备份在根目录下 ( D:\stata15\ado\base/a/ ),所以我们可同时用 use sysuse 直接调用。显然,由于使用 use 需指定文件路径,较为繁琐,我们通常都是直接使用 sysuse 命令调入这些内置的数据文件。以 cancer 数据集为例,若想使用 use 命令调用,则需指定具体的存储路径:

. use "D:\stata15\ado\base/c/cancer.dta", clear

相比之下,若用 sysuse 命令,则可以直接调入:

. sysuse cancer.dta, clear

1.3 webuse 命令

Stata 手册里使用的数据都可以使用 webuse 命令直接下载使用。在命令窗口输入 help dta_manuals ,可以查看数据集列表信息。

如图所示,以上手册简单直译了一下,读者可以自取所需,点击进入后会有命令介绍与配套数据库。上述手册配套的所有数据库都可以用 webuse 直接调入。 webuse 的特点是可以直接在线导入网上数据而不需指定具体网络路径,因为 web set 已经默认设定了网络地址为 Stata 官网的手册地址。例如,以下两条命令语句等价:

. use http://www.stata-press.com/data/r15/lifeexp, clear
. webuse lifeexp, clear

输入 webuse query 命令,我们可以看到当前默认设定的网址:

. webuse query
(prefix now "http://www.stata-press.com/data/r15")

使用 webuse set 可以更改默认地址,以便下载特定网址中的 Stata 数据文件。若需恢复默认网址设定,只需执行 webuse set ,后面不加网络路径。

1.4 bcuse 命令

bcuse 由波士顿大学 Baum  教授编写,提供了波士顿学院 Economics 实验室中使用的许多 Stata 格式数据集。具体包括 Wooldridge 导论,Greene 的计量分析等经典教科书范例数据。我们可以使用 ssc install bcuse, replace 命令下载并安装该命令。以伍德里奇《导论》中的数据集为例,我们输入如下命令,打开 bcuse 的帮助文件,可以看到该命令能够下载的所有数据集的列表链接地址:

. help bcuse

亦可在命令窗口中直接输入如下命令打开网页:

. view browse "http://fmwww.bc.edu/ec-p/data/wooldridge/datasets.list.html"

截取部分网页信息如下:

如果有些命令是以 zip 保存的,只需在文件名后面加上 .zip 即可,如 bcuse 401k.zip

1.5 freduse 和 import fred 命令

fed 是由圣路易斯联邦储备银行 (Federal Reserve Bank of st . Louis) 维护的联邦储备经济数据库 (FRED)。该数据库提供了数十万个时间序列资料,用以衡量经济和社会活动的方方面面。在 Stata14 使用的命令为 freduse ,需要先用 ssc install freduse, replace 命令下载。Stata 15 中提供了 import fred 命令用于快捷地导入 fred 上存储的数据。更多详细信息,请参考详「链接1」和「链接2」。

1.6 copy 命令

copy filename1 filename2 [, options]

filename1 是要复制的来源文件地址, filename2 是存放的新文件地址,可以是一个附带路径的本地文件名也可以是一个网络链接地址。当文件路劲比较复杂,比如含空格时要用双引号将两个路径包围。

options 功能
public 定了 filename2 对所有用户可读,否则根据系统默认
text 将文件保存为 txt 格式
replace 若 filename2 的文件已存在,则替换它

copy 命令的作用包括:

  • 文件搬家:就是将硬盘上的一个文件搬到另一个地方。此时两个文件名都为本地路径文件,还可对文件改名;
  • 下载网上的文件,比如一些论文、上市公司年报、数据等,只要知道他们的 url 就能用 copy 获取。以 copy 为基础有更高级的命令,如 cntrade 命令就是用 copy 直接读取网易财经的股价历史数据。

2. 调入其他格式数据

当数据文件为其他格式时,也可以导入 Stata 软件中进行处理,常用的命令主要有 insheet infile infix 、以及 import 等命令。

2.1 insheet 命令

insheet [varlist] using filename [, options]

其中, insheet 代表导入数据的命令, [varlsit] using filename 代表数据文件中的某个变量, options 选项的具体内容如下:

  • [no]double :设置变量存储类型;
  • tab :设置制表符为数值变量的分隔符;
  • comma :设置逗号为数值变量的分隔符;
  • delimiter("char") :设置自定义的 “char” 为数值变量的分隔符;
  • clear :清空内存;
  • [no]names :设置文件中的第一行为变量名称。

例如,将数据 citywater.csv 导入 Stata 中,我们就不能直接使用 use 命令了,因为此数据文件的后缀名不是 .dta,而是 .csv,这种数据类型表示使用逗号分隔的一种数据类型。

. insheet using "D:\连享会\citywater.csv", clear

insheet 是导入此类数据的命令, using "D:\连享会\citywater.csv" 指明了数据的路径,此时数据文件 citywater.csv 就被正确导入 Stata 中,可以进行各种操作了。

2.2 infile 命令

infile 在某种程度上可以完成与 insheet 命令相同的功能,最大区别是 infile 必须指明变量名称,尤其是字符型变量。 infile 命令读取数据的基本命令语句如下:

infile varlist [_skip[(#)] [varlist [_skip[(#)] ...]]] using filename
[if] [in] [, options]

同样将数据 citywater.csv 导入 Stata 中, infile 命令为:

. infile year production capital labor using "D:\连享会\citywater.csv", clear

2.3 infix 命令

固定格式的数据是指有固定的位数,当位数不够时,前面用 0 补齐,对于这种数据是用 infix 命令读入的。

infix using dfilename [if] [in] [, using(filename2) clear]
infix specifications using filename [if] [in] [, clear]

例如,将左侧数据 (数据文件 chengji.csv) 转化成右侧所示的数据形式。chengji 这组数据为用逗号隔开的数据类型。其中 gender 只有 0 和 1 两个数字组成, number 这一栏必须由三位数组成, math english 的成绩必须由两位数组成,所以这是一个固定格式的数据,应该使用 infix 命令。

. infix gender 1 number 3-5 math 7-8 english 10-11 using "D:\连享会\chengji.csv", clear

在这个命令语句中, infix gender 1 说明第一位数据为性别, number 3-5 表示第 3 至 5 位表示学号, math 7-8 表示第 7 至 8 位表示数学成绩, english 10-11 表示第 10 至 11 为表示英语成绩, using C:\data\chengji.csv 表示原始数据文件的路径。

2.4 import 命令

读取 Excel 数据有两种选择,一种是利用鼠标点击菜单,这种方式简单,无法对文件做精细设置。另一种是利用 Stata 官方命令 import excel

import excel [using] filename [, import_excel_options]

其中, options 选项如下:

  • sheet("sheetname") :选择要导入的表名;
  • cellrange([start][:end]) :选择数据的起始和结束位置;






请到「今天看啥」查看全文