Stata统计分析与实验指导(视频教学版)
上QQ阅读APP看书,第一时间看更新

2.2 数据的导入

能够将不同形式的数据正确导入是运用Stata进行数据分析的第一步。本节将针对此来进行介绍。

2.2.1 输入数据

在现实的经济学研究中,大部分数据都是由用户自行输入创建的。本节首先介绍两种输入数据的方法:一种是通过菜单方式输入;另一种是通过命令方式输入。

1.使用菜单方式输入数据

假定要创建一个成绩数据表(chengji.dta),内容如表2.8所示。

表2.8 chengji数据表的内容

利用Stata的菜单操作的方法如下:

01 单击工具栏中的图标,弹出数据编辑器,在其中输入相应数据,如图2.8所示。需要注意的是,每当输入完一个单元格的内容之后,需要按回车键确认。

02 给变量命名。在所有数据输入完成之后,双击var1,将弹出如图2.9所示的对话框,在Name栏中填入变量的名称“name”,在Label栏中填入标签的内容“姓名”,单击OK按钮完成操作。同样将var2命名为remarks。

图2.8 数据编辑器截图

图2.9 变量属性设置图

03 保存已经创建的数据文件。单击工具栏中的图标,然后给文件命名和选择存储路径即可。

2.使用命令方式输入数据

首先必须了解数据输入的基本命令,具体语句如下:

     input [type] varname [[type] varname] …

[type]表示输入的变量类型,若省略,则为Stata默认的float型;varname表示变量的名称。在这句命令之后,依次输入数据即可。

若要输入如表2.8所示的内容,则可输入命令如下:

     clear
     input str10 name remarks
     Mike 98
     John 78
     Ryan 86
     Tom 67
     Kite 96
     end
     save chengji(将数据文件保存在默认文件夹data中,文件名为chengji)

在以上命令语句中,clear表示清除内存;input str10 name remarks表示输入两个变量:name和remarks,其中要将变量的类型写在名称前面,如str10表示name的类型为长度为10的字符型,而remarks前面没写数据类型,表示其类型为默认的浮点型;Mike 98~Kite 96表示数据的内容,一定要按照前面命令语句中变量name和remarks的顺序填写;end表示结束数据输入;save chengji将数据文件保存在默认文件夹data中,完整文件名为chengji.dta。

通过比较可以看出,利用命令方式实现数据的输入较为烦琐,所以一般并不使用。

2.2.2 使用已经保存的Stata数据

Stata默认的数据格式是.dta,这种格式的文件可以直接打开应用,命令为use,具体内容已在本章2.1.1小节做了详细介绍,这里不再赘述。

2.2.3 导入其他格式的数据

当数据文件为其他格式时,也可以导入Stata软件中进行处理,常用的命令主要有insheet、infile、infix。下面将通过实例进行详细介绍。

1.使用insheet命令读取ASCII数据

ASCII数据是指原始的文本数据,由电子表格和数据库程序生成的数据文件,每一行代表一个观测值(case),数值由逗号或制表符隔开,第一行可以包含变量名称。利用insheet读取时的基本命令语句如下:

     insheet [varlist] using filename [,options]

在这个语句中,insheet代表导入数据的命令,[varlist] using filename代表数据文件中的某个变量,这里的options包括的选项及其含义如表2.9所示。

表2.9 insheet_options的内容

例如,将数据citywater.csv导入Stata中,就不能直接使用use命令,.csv数据类型表示使用逗号分隔的一种数据类型,具体格式如图2.10所示。

图2.10 citywater数据图

将其导入Stata的命令如下:

     insheet using C:\data\citywater.csv
2.使用infile命令读取没有固定格式的ASCII数据

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

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

例如,同样将数据citywater.csv导入Stata中,我们可输入如下命令语句:

     infile year production capital labor using C:/data/citywater.csv

这个命令的操作结果与insheet命令相同。

3.使用infix命令读取固定格式的ASCII数据

这种固定格式的数据有固定的位数,当位数不够时,前面用0补齐。对于这种数据可用infix命令读入,其具体形式如下:

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

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

表2.10 chengji输入后的数据图

图2.11 chengji.csv格式图

具体的命令语句为:

     infix gender 1 number 3-5 math 7-8 english 10-11 using C:/data/chengji.csv,
     clear

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