温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
编者按:从本期开始,Stata 连享会将推出「Stata 小白系列」推文,介绍数据导入、命令语法等 Stata 入门知识,以帮助各位尽快掌握 Stata 的基本操作。需要注意的是,本文所有数据可通过
lxhget xzhstata.pkg, replace
命令获取。
目录
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 行观察值。
安装 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
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
,后面不加网络路径。
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
。
fed
是由圣路易斯联邦储备银行 (Federal Reserve Bank of st . Louis) 维护的联邦储备经济数据库 (FRED)。该数据库提供了数十万个时间序列资料,用以衡量经济和社会活动的方方面面。在 Stata14 使用的命令为 freduse
,需要先用 ssc install freduse, replace
命令下载。Stata 15 中提供了 import fred
命令用于快捷地导入 fred 上存储的数据。更多详细信息,请参考详「链接1」和「链接2」。
copy filename1 filename2 [, options]
filename1
是要复制的来源文件地址, filename2
是存放的新文件地址,可以是一个附带路径的本地文件名也可以是一个网络链接地址。当文件路劲比较复杂,比如含空格时要用双引号将两个路径包围。
options | 功能 |
---|---|
public | 定了 filename2 对所有用户可读,否则根据系统默认 |
text | 将文件保存为 txt 格式 |
replace | 若 filename2 的文件已存在,则替换它 |
copy 命令的作用包括:
copy
获取。以 copy
为基础有更高级的命令,如 cntrade
命令就是用 copy
直接读取网易财经的股价历史数据。
当数据文件为其他格式时,也可以导入 Stata 软件中进行处理,常用的命令主要有 insheet
、infile
、infix
、以及 import
等命令。
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 中,可以进行各种操作了。
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
固定格式的数据是指有固定的位数,当位数不够时,前面用 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
表示原始数据文件的路径。
读取 Excel 数据有两种选择,一种是利用鼠标点击菜单,这种方式简单,无法对文件做精细设置。另一种是利用 Stata 官方命令 import excel
。
import excel [using] filename [, import_excel_options]
其中,options
选项如下:
sheet("sheetname")
:选择要导入的表名;cellrange([start][:end])
:选择数据的起始和结束位置;firstrow
:将第一行作为变量名。与 import excel
对应的导出命令为 export excel
,详情请参考 help export excel
。
以 stata 附带的 auto.dta 数据为例 (为演示方便已将其导出为 Excel)。首先我们导入数据,将第一行设置为变量名,选取数据范围为 (A1,D10),命令如下:
. use auto.dta, clear
. export excel using auto.xls, firstrow(var) replace
. import excel auto.xls, cellrange(A1:D10) firstrow clear
需要说明是,此处若不附加 cellrange(A1:D10)
选项,则默认将整份 Excel 表格一次性导入 Stata 中。
上文介绍的 import excel
命令一般用于导入单个 excel 文件。当需读取多个 excel 文件时,大家可以使用 xls2dta
命令。该命令在处理多个 excel 文件上具有显著优势,不仅可以读取保存,还可以进行合并等其他操作。由于篇幅限制,不再为大家介绍,有兴趣同学可以自行学习。
Note:产生如下推文列表的 Stata 命令为:
lianxh 小白 import, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh