STATA入门3数据Word文档格式.docx
《STATA入门3数据Word文档格式.docx》由会员分享,可在线阅读,更多相关《STATA入门3数据Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
美国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-
另一个网络数据较多的地方是波士登大学的数据中心,我们所用的《计量经济学导论》一书中所使用的全部数据都可以通过该数据中心获得。
比如
//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:
10
53Mar200510:
15
240(99.9%ofmemoryfree)
storagedisplayvalue
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
*----------------将字符型数据转换为数值型数据:
去掉字符间的空格------------