STATA入门3数据.docx

上传人:b****6 文档编号:3106886 上传时间:2022-11-17 格式:DOCX 页数:21 大小:178.72KB
下载 相关 举报
STATA入门3数据.docx_第1页
第1页 / 共21页
STATA入门3数据.docx_第2页
第2页 / 共21页
STATA入门3数据.docx_第3页
第3页 / 共21页
STATA入门3数据.docx_第4页
第4页 / 共21页
STATA入门3数据.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

STATA入门3数据.docx

《STATA入门3数据.docx》由会员分享,可在线阅读,更多相关《STATA入门3数据.docx(21页珍藏版)》请在冰豆网上搜索。

STATA入门3数据.docx

STATA入门3数据

3数据

数据文件是一个矩形的矩阵,这个矩阵的每一行都代表或对应着一个“观测单位”(比如是一个人,一个村或一个地区等等),矩阵的每一列都代表或对应着一个“变量”(比如年龄,身高、体重,月工资收入等等)。

因此,数据文件矩阵中的每一个元素(case)都代表或对应着某一个“观测单位”(如张三、李四,A厂、B厂)中的某一个“变量”(比如年龄、体重,月收入等等)的变量值或观察值。

3.1打开示例数据和网络数据:

use

3.1.1示例数据

示例数据为STATA帮助文件中所用的数据,其后辍名为.dta,如果在STATA软件当前路径下,直接用use命令即可打开,如果不在当前路径下,则可以使用sysuse命令打开。

.useauto,clear//打开汽车数据auto.dta

.cdd:

///改变路径到d:

/

.useauto,clear

fileauto.dtanotfound//系统提示无法找到文件,因为auto.dta不在d:

/

r(601);

.sysuseauto,clear//无论当前路径是什么,该命令均能打开系统自带文件

示例数据

Auto:

美国1978年汽车数据,包括产地、车名、行使里程、重量等变量

Bplong血压数据

Cancer药物实验生存数据

Census1980年美国分州人口普查数据

Citytemp美国城市气温数据

Educ99gdp教育与GDP关系数据

Gnp96美国1967-2002年的GNP数据

Lifeexp预期寿命数据

Nlsw88美国年轻妇女研究数据

Pop2000美国2000年人口普查数据

Sp500S&P500历史数据

Uslifeexp美国预期寿命1900-1999

Voter美国1992年选举民意调查数据

3.1.2从网络获取数据

上述示例数据可能没有全部下载安装于你的电脑中,因此简单地使用use和sysuse命令时,可能出现错误,如

.usenlswork,clear

filenlswork.dtanotfound

此时,如果确定该数据为示例数据,可以直接通过网络获取,其命令为:

.usehttp:

//www.stata-//从网站获取数据,或者

.webusenlswork,clear//与前一命令等价,从STATA官方数据库获取数据

webuse只能从http:

//www.stata-

另一个网络数据较多的地方是波士登大学的数据中心,我们所用的《计量经济学导论》一书中所使用的全部数据都可以通过该数据中心获得。

比如

.usehttp:

//fmwww.bc.edu/ec-p/data/wooldridge/CEOSAL1

即打开教材中例2.3中所使用的CEO数据。

use命令只能打开后辍名为“*.dta”格式的数据,.dta格式以外的数据,STATA不能直接读取,需要从外部读入,最简单而直接的办法是复制和粘贴,但有时没有其他软件,比如有SAS格式或SPSS格式的数据,但没有SAS软件和SPSS软件,此时需要用STATA提供的其他命令或者使用transfer数据格式转化软件。

在讨论其他输入或导入数据的方法之前,我们先来学习一点数据类型的知识。

3.2数据类型

STATA通常把变量划分为三类:

分别是数值型,字符型和日期型

3.2.1数值变量:

用0、1、2…9及+、–(正负号)与小数点“(.)”来表示。

在输入数据时,逗号不能被识别,如1,024应该直接写成1024.其他示例

5

-5

5.2

5.2e+3

5.2e-2

后面两个数据为科学计数法的数据,分别表示5200和0.052.其中的e相当于10,因此5.2e+3的意思是:

5.2*103=5200

数值型变量按其精度区分,又有五种类型,分别是:

存贮类型        最小       最大 0-领域 字节

---------------------------------------------------------------------

byte-127100+/-11

int-32,76732,740+/-12

long-2,147,483,6472,147,483,620+/-14

float-1.70141173319*10^381.70141173319*10^36+/-10^-364

double-8.9884656743*10^3078.9884656743*10^307+/-10^-3238

当运算精度要求很高的时候,需要将变量设置成浮点型和双精度型。

注意1和1.0000的精度是不同的,前者在(0.5,1.5)区间内近似,而后者在(0.99995,1.00005)区间内近似。

若多次运算反复取四舍五入,精度较低时将使计算误差迅速变大,然而,精度高时占用的内存资源较多。

下面的命令有助于理解变量存贮类型变换。

clear

setobs1

obswas0,now1//提示信息说,之前系统中没有观察单位,现在有了一个

gena=1//生成一个新变量a,令a取值为1

d/*d为describ命令的略写,describ命令显示数据集的属性信息,注意观察显示结果中,a的storagetype为float型,浮点型为默认类型*/

Containsdata

obs:

1(观察值个数)

vars:

1(变量个数)

size:

8(99.9%ofmemoryfree)(内存空间大小)

storagedisplayvalue

variablenametypeformatlabelvariablelabel

afloat%9.0g

Sortedby:

(按什么分类)

Note:

datasethaschangedsincelastsaved(注释)

compress//在不损害信息的基础上压缩,使数据占用空间尽可能小

awasfloat,nowbyte//a由浮点型变为了字节型

d//注意a的storagetype现在为byte型

replacea=101/*注意a的storagetype现在自动升为int型,

因为byte最大只能为100*/

awasbytenowint

(1realchangemade)

replacea=100

compress

d//重新变回到byte型

replacea=32741//直接变到long型,因为int型最大只能到32740

gendoubleb=1//直接生成双精度变量b

recastdoublea//将a变成双精度变量b

d//注意到a和b均为双精度型

 

3.2.2字符串变量:

字符变量通常是一些身份信息,如姓名,地名。

另外,分类形迹也可以用字符变量来表示,如性别分为“男”和“女”。

字符串变量由字母或一些特殊的符号组成的(如地名〈籍贯〉变量,迁出地,住址,职业等等)。

字符串变量也可以由数字来组成,但数字在这里仅代表一些符号而不再是数字。

字符串变量通常以引号“”注标,而且引号一般不被试同为字符的一部分。

注意这里的引号必须是英文输入状态下的引号。

字符串最多可以达244个字符。

一般用str#来表示字符的多少,如str20表示将有20个字符。

一般三个中文字的姓名需要6个字符。

字符型示例

“String”

“string”

”string”

”string”

””      //特殊字符串,表示空字符,缺失值。

””      //注意与空字符串的区别,含有一个空格

”125.27”//”125.27”由于有双引号,将被视同为字符而非数值。

“$2,343.68”

“Iloveyou”

“旺材是条狗”

注意前四个字符串均不相同,大小写是不一样的,有无空格及空格的位置不同,都表示不同的字符串。

对于”125.27”这样的数值型的字符串,可以用real()函数或者destring命令转化成数值型变量。

具体操作见3.3.1。

3.2.3日期型变量

在STATA中,1960年1月1日被认为是第0天,因此1959年12月31日为第-1天,2001年1月25日为15000天。

对日期型变量的讨论将在后面的时间序列分析部分。

19991210

jan/10/2001

10jan2001

...

-15,000---01dec1918

-31---01dec1959

...

-1---31dec1959

0---01jan1960

1----02jan1960

...

31----01feb1960

...

15,000----25jan2001

3.2.4缺失值

没有意义的计算结果显示为”.”如将一个字符型数据和一个数据值型数据相加没有意义,结果输出为“.”

.display2/0

另一种情况是,数据中含有缺失值,STATA默认的缺失值也用“.”来表示。

在有些数据文件中,缺失值不是用“.”或者空来表示的,而是用-9996等来表示,如果要将其全部替换为“.”,或者反之,将“.”替换为-9996,命令为:

.mvencodeage,mv(-9996)

.mvdecodeage,mv(-9996)

3.3数据类型转化

任务:

将destring1,destring2和tostring中的数据类型进行相互转化

*3.3.1字符型转化成数值型:

destring

*destring1数据中的数据全为字符型,转换为数值型

webusedestring1,clear

des/*注意到所有的变量存贮类型(storagetype)均为字符型str#,

其中#号表示字符串长度*/

Containsdatafromhttp:

//www.stata-

obs:

10

vars:

53Mar200510:

15

size:

240(99.9%ofmemoryfree)

storagedisplayvalue

variablenametypeformatlabelvariablelabel

idstr3%9s

numstr3%9s

codestr4%9s

totalstr5%9s

incomestr5%9s

sum//因为所有变量为字符型,所以不能进行数值计算

gennincom=incom+10//因字符不能进行四则运算,不能进行加法运算

*typemismatch//系统提示类型不匹配,因为income为字符型,10为数值型

destring,replace//全部转换为数值型,replace表示将原来的变量(值)更新

sum//注意到转换为数值型后,可以求五数概略了

gennincom=income*1.3//转换后,可以运算,工资终于涨了30%!

listnincomincome

*----------------将字符型数据转换为数值型数据:

去掉字符间的空格------------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1