作者:谢作翰 | 连玉君
编者按: 从本期开始,Stata 连享会将推出「Stata小白系列」推文,介绍数据导入、命令语法等 Stata 入门知识,以帮助各位尽快掌握 Stata 的基本操作。
Stata连享会 精彩推文1 || 精彩推文2 文中包含的链接在微信中无法生效。请点击本文底部左下角的,转入本文。
目录
- 概念区分
- 调入本地标准文件
- 调入全部数据
- 调入部分变量
- 调入部分样本
- 调入具有某些特征的样本
- 调入网络文件
- 调用 stata 自带数据库——命令
- 调入stata 手册在线数据 ——命令
- Wooldridge, Greene 等经典教科书范例数据获取——命令
- 调用联邦储备经济数据库 (FRED)——&
- 大杀器命令——从下载地址直接储存文件或复制网页文本信息
第二篇
- 调入ASCII数据
- 读取ASCII数据 —— insheet命令
- 读取无固定格式命令 ——infile命令
- 读取固定格式数据——infix
- 调入excel数据——&
[h2]0 从一个概念区分开始:打开&调入数据[/h2]使用的第一步是打开文件,但这一简单动作也是有所讲究的。严格来说,使用打开是不确切的。在内存中分配了一块空间,用于存储调入的数据,而这份数据其实是存储于硬盘或网络上的数据文件的复制品而已,除非使用 save 命令将其保存到硬盘上,硬盘中数据文件是不受任何影响的。[h2]1. 调入本地 Stata 格式数据文件[/h2]- use [varlist] [if] [in] using filename [, clear nolabel ]
复制代码
- 解释:
- 是打开数据的命令语句,
- 代表变量名称,
- 是条件语句,用于限定样本范围;
- 是范围语句,很少用
- 代表数据文件路径和名称。
[h3]1.1 调入文件中全部数据[/h3]如果想要调入数据文件中的全部数据,输入标准命令如:
- use "D:\360Downloads\PanDownload\操作数据\教程数据\chap02\date.dta", clear
复制代码 说明:是表示调入的命令语句,引号中- D:\360Downloads\PanDownload\操作数据\教程数据\chap02\date.dta
复制代码 则指定了数据文件的路径。
[h3]1.2 调入文件中部分变量[/h3]有时,并不需要将数据文件中的所有变量全部调入,因为原始数据内容丰富,含有很多变量,而研究可能只涉及其中的几个变量。所以若只调入文件中的和这两个变量,应该使用如下命令:
- use make price using "C:\data\usaauto.dta"
复制代码 这个命令中部分表示需要打开和两个变量,- using “C:\data\usaauto.dta”
复制代码 部分表示打开的数据文件路径及名称,如果用户使用此命令打开其他数据文件,所应用的命令相似,只需要把表示文件名称和变量的具体内容修改即可
[h3]1.3 调入文件中部分样本[/h3]有时,原始数据文件的样本数量过于庞大,例如人口普查的数据动辄千百万,可是一般的研究大部分不需要全部的样本,只需要部分样本即可,所以这时候只需要打开部分样本。例如,若只需要调入数据文件中第五到第十个样本的数据,可以使用如下命令:
- use "C:\data\usaauto.dta" in 5\10
复制代码 解释:
- use "C:\data\usaauto.dta"
复制代码 表示调入的数据文件名称及路径,
- 表示选取的样本序号,即选取第 5-10 行观察值。
[h3]1.4 调入具有某些特征的样本[/h3]有时,原始数据将不同特征的样本混杂在一起,而现实的研究却要求将不同的样本分开研究,例如分别研究男性、女性的情况,城市、农村的经济问题,等等。这时就需要只调入具有这些特征的样本数据进行分析,在这个试验中,调入文件中进口车样本数据的命令为:
- use "C:\data\usaauto.dta" if foreign==1
复制代码 解释:这个命令语句中最重要的就是语句,该命令执行的结果就是让 stata 仅仅读入符合条件的样本数据。在本例中,就表示是进口车,所以调入的数据就是进口车的数据。
[h2]2. 调入 Stata 自带范例数据文件[/h2][h3]2.1 sysuse 命令:调用 stata 内置数据集[/h3]安装 Stata 时,会自带一些供练习所用的范例数据集。在命令窗口中输入如下命令可以查看完整的文件列表:
Stata 内置有以上数据集供我们使用,在练习命令时我们不必舍近求远。
例如,数据集大名鼎鼎,笔者在不少教程中见过。由于数据库同时备份在根目录下 (),所以我们可同时用或直接调用。显然,由于使用需指定文件路径,较为繁琐,我们通常都是直接使用命令调入这些内置的数据文件。
以数据为例,如图所示,若想使用命令调用,则需指定具体的存储路径:
- use "D:\stata15\ado\base/c/cancer.dta", clear
复制代码 相比之下,若用命令,则可以直接调入:
- sysuse "cancer.dta", clear
复制代码
cancer数据库调用[h3]2.2 调入在线数据 —— webuse set 命令[/h3]不要见识了内置数据集就心满意足了,因为接下来的资源更加强大。Stata 手册里使用的诗句都可以使用命令直接下载、使用。数据集列表信息如下:
手册资源如图所示,以上手册,简单直译了一下,读者可以自取所需,点击进入后会有命令介绍与配套数据库。上述手册配套的所有数据库都可以用直接调入。的特点是可以直接在线导入网上数据而不需指定具体网络路径,因为已经默认设定了网络地址为官网的手册地址。举例:
- use http://www.stata-press.com/data/r15/lifeexp, clear
复制代码 可以简写为
输入命令,我们可以看到当前默认设定的网址:
- (prefix now "http://www.stata-press.com/data/r15")
复制代码 更改默认地址使用可以更改默认地址,以便下载特定网址中的 Stata 数据文件。若需恢复默认网址设定,只需执行,后面不加网络路径。
[h3]2.3命令——Wooldridge, Greene 等经典教科书范例数据获取[/h3]由波士顿大学 Baum 教授编写,提供了波士顿学院 Economics 实验室中使用的许多 Stata 格式数据集。包括 Wooldridge的导论, Greene 的计量分析等经典教科书范例数据。可以使用- ssc install bcuse, replace
复制代码 命令下载并安装该命令。
以伍德里奇《导论》中的数据集为例带大家简单探索一番。
输入如下命令,打开的帮助文件,可以看到该命令能够下载的所有数据集的列表链接地址:
亦可在命令窗口中直接输入如下命令打开网页:
- view browse "http://fmwww.bc.edu/ec-p/data/wooldridge/datasets.list.html"
复制代码 截取部分网页信息如下:
Wooldridge data sets如果有些命令是以zip保存的,只需再文件名后面加上.zip即可, 如:
[h3]2.4调用联邦储备经济数据库 (FRED)——&[/h3]是由圣路易斯联邦储备银行 (Federal Reserve Bank of st . Louis) 维护的联邦储备经济数据库 (FRED)。该数据库提供了数十万个时间序列资料,用以衡量经济和社会活动的方方面面。在 stata14 使用的命令为,需要先用- ssc install freduse, replace
复制代码 命令下载。Stata 15 中提供了命令用于快捷地导入 fred 上存储的数据。使用详情参见:链接1;链接2。- 大杀器命令——从下载地址直接储存文件或复制网页文本信息
- 调入ASCII数据
- 读取ASCII数据 —— insheet命令
- 读取无固定格式命令 ——infile命令
- 读取固定格式数据——infix
[h2]3.大杀器命令——从下载地址直接储存文件或复制网页文本信息[/h2]基本语句:- copy filename1 filename2 [, options]
复制代码 是要复制的来源文件地址,是存放的新文件地址,可以是一个附带路径的本地文件名也可以是一个网络链接地址。当文件路劲比较复杂,比如含空格时要用双引号将两个路径包围。
options功能public定了filename2对所有用户可读;否则根据系统默认text将文件保存为txt格式replace若filename2的文件已存在,则替换它copy 命令的作用包括:
- 文件搬家:就是将硬盘上的一个文件搬到另一个地方 此时两个文件名都为本地路径文件,还可对文件改名
- 下载网上的文件,比如一些论文,上市公司年报,数据等,只要知道他们的 url 就能用获取,以为基础有更高级的命令,如命令就是用直接读取网易财经的股价历史数据
- 爬虫的基础
下面,以功能 2 为例为大家示范找到一篇关于教程文章,,地址比较复杂,使用引号包围,用将其保存在指定磁盘,并将其命名为,输入如下命令:
- copy "https://www.kellogg.northwestern.edu/faculty/dranove/htm/dranove/coursepages/Mgmt%20469/Creating%20a%20do-file.pdf"
复制代码- "C:/Users/Administrator/Desktop/文件中转/copy1.pdf"
复制代码 文件就保存到本地了!命令极其精巧,许多妙用尚待发掘,作为一个小白能力有限,慢慢来吧!
[h2]4. 调入ASCII数据[/h2]当数据文件为其他格式时,也可以导入Stata软件中进行处理,常用的命令主要有、、命令
[h3]4.1 insheet命令——读取 ASCII 格式的数据[/h3]ASCII数据:数据是指原始的文本数据,是由由电子表格和数据库程序生成的数据文件中,每一行代表一个观测值,数值由逗号或制表符隔开,第一行可以包含变量名称。基本命令语句:
- insheet [varlsit] using filename [,options]
复制代码 说明:代表导入数据的命令,代表数据文件中的某个变量,这里的的具体内容显示在表 2.9 中,主要包括选项的内容和所代表的含义。
例子:将数据导入Stata中,就不能直接使用命令了,因为此数据文件的后缀名不是,而是,这种数据类型表示使用逗号分隔的一种数据类型:- insheet using C:\data\citywater.csv
复制代码 语法说明如下:
- 是导入此类数据的命令,
- using C:\data\citywater.csv
复制代码 指明了数据的路径,此时数据文件就被正确导入Stata中,可以进行各种操作了
[h3]4.2 infile命令——读取无固定格式的数据文件[/h3]在某种程度上可以完成与命令相同的功能,最大区别是必须指明变量名称,尤其是字符型变量。而用命令读取数据的基本命令语句如下:
- `infile varlist [_skip[(#)] [varlist [_skip[(#)] ...]]]
复制代码- using filename [if] [in] [, options]`
复制代码 例如,同样将数据导入Stata中,操作命令为:
- infile year production capital labor using C:\data\citywater.csv
复制代码 [h3]4.3 infix命令——读取固定格式数据[/h3]固定格式的数据是指有固定的位数,当位数不够时,前面用 0 补齐,对于这种数据是用命令读入的,具体形式如下:
- infix using dfilename [if] [in] [, using(filename2) clear]
复制代码- infix specifications using filename [if] [in] [, clear]
复制代码 例如,将下列一组数据(数据文件)转化成如表 2.10 所示的数据形式。这组数据为用逗号隔开的数据类型,如图 2.11 所示,其中(性别)只有 0 和 1 两个数字组成,(学号)这一栏必须由三位数组成,math和english的成绩必须由两位数组成,所以这是一个固定格式的数据,应该使用infix命令。
具体的命令语句为:
- infix gender 1 number 3-5 math 7-8 english 10-11 ///
复制代码- using C:\data\chengji.csv, clear
复制代码 在这个命令语句中,说明第一位数据为性别,表示第 3 至 5 位表示学号,表示第 7 至 8 位表示数学成绩,表示第 10 至 11 为表示英语成绩,- using C:\data\chengji.csv
复制代码 表示原始数据文件的路径。
[h2]5. 调入excel 数据—— import excel & xls2dta[/h2][h3]5.1 简介[/h3]读取 excel 数据有两种选择,一种是利用鼠标点击菜单,这种方式简单,无法对文件做精细设置。具体操作步骤如下:File > Import > Excel spreadsheet (.xls;.xlsx) 另一种是利用 stata 官方命令。基本语句:
- import excel [using] filename [, import_excel_options]
复制代码 使用命令导入可以利用参数设置对细节进行设置,以下介绍常用三个参数
options功能sheet("sheetname")含多张表的文件选择要导入的表头cellrange([start][:end])选择数据的起始,结束位置firstrow输入的话将Excel表的第一行数据作为变量名举例介绍,以附带的数据为例(为演示方便已将其导出为 Excel)首先我们导入数据,将第一行设置为变量名,选取数据范围为(A1,D10),使用命令
- import excel auto.xls, cellrange(A1:D10) firstrow
复制代码
需要说明是,此处,若不附加选项,则默认将整份 Excel 表格一次性导入 Stata 中。
[h3]5.2数据导出——[/h3]基本语句:
- export excel [varlist] using filename [if] [in] [, export_excel_options]
复制代码 options功能sheet("sheetname")保存到名为sheetname的工作表中cell(start)指定Excel工作表中的左上角单元格开始保存firstrow(variables、varlabels)将变量名或变量标签名保存为首行nolabel保存数据值而非数据值标签值[h3]5.3多文档同时导入——[/h3]上文介绍的命令一般用于导入单个 excel 文件。当需读取多个 excel 文件时需用到宏循环处理,对小白并不友好。为大家介绍一个便捷的命令——此命令在处理多个 excel 文件上具有显著优势,不仅可以读取保存,还可以进行合并等其他操作。由于篇幅限制,不再为大家介绍,为大家寻找了相关博客,有兴趣同学可以自行学习。值得一提的是,此命令需从 ssc 下载 ,可以使用命令下载之。数据文件:链接: https://pan.baidu.com/s/1qXRh9EG 密码: 5ltw文中包含的链接在微信中无法生效。请点击本文底部左下角的,转入本文。- 【Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
- 公众号推文同步发布于 CSDN-Stata连享会 、简书-Stata连享会 和 知乎-连玉君Stata专栏。可以在上述网站中搜索关键词或后关注我们。
- 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
- Stata连享会 精彩推文1 || 精彩推文2
- 欢迎赐稿: 欢迎将您的文章或笔记投稿至
- Stata连享会(公众号: StataChina)
复制代码 ,我们会保留您的署名;录用稿件达以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
- 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
- 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
- 联系邮件: StataChina@163.com
欢迎加入Stata连享会(公众号: StataChina)
|
|