收藏 分销(赏)

Stata学习重点笔记专业资料.doc

上传人:精*** 文档编号:3033884 上传时间:2024-06-13 格式:DOC 页数:40 大小:1,021.04KB
下载 相关 举报
Stata学习重点笔记专业资料.doc_第1页
第1页 / 共40页
Stata学习重点笔记专业资料.doc_第2页
第2页 / 共40页
Stata学习重点笔记专业资料.doc_第3页
第3页 / 共40页
Stata学习重点笔记专业资料.doc_第4页
第4页 / 共40页
Stata学习重点笔记专业资料.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、如下命令均采用小写字母Chapter 1 stata入门1.1打开数据use D:Stata9auto.dta,clear 用use命令打开数据sysuse auto,clear auto 为系统数据 sysuse为打开系统数据命令1.2获取协助Help summarize summarize为需要获取协助对象 可以改为其她需要协助对象Findit summarize,net 寻找网络协助 summarize为需要获取协助对象Search summarize ,net 寻找网络协助 summarize为需要获取协助对象显示成果Display 5+9 1.3描述记录(summarize 可简写成

2、sum)Use atuo,clearSummarize price 描述price观测值个数、平均值、原则差、最小值、最大值Sum weight summarize可简写成sumSum weight price 同步完毕上面两步1.4绘图Scatter price weight scatter 为绘制散点图命令Line price weight ,sort line 为绘制折线图命令,sort为排序,绘制折线图前需要先排序1.5生成新数据(generate 可简写成gen)ClearSet obs 1000 设立观测值组数Gen x=_n _n 为观测值得序号Gen y=x+1001.6控制成

3、果输出显示List n 1.7设立屏幕滚动Set more off 先设立此项 则显示时,屏幕不断止Set more on 先设立此项 则显示时,会使显示停止1.8清除内存中原有内容clear1.9设立文献存取途径(cd)Cd d:stata d:stata为途径1.10如果想懂得当前程径下有哪些文献,可以用dir 命令来列示.dir1.11假设你想在D 盘根目录下创立一种新文献夹mydata 来存储数据文献,命令为mkdir。mkdir d:mydata1.12错误提示List myvar上述命令试图显示变量myvar,但是成果窗口仅浮现如下显示variable myvar not foun

4、dr(111);红色信息表白,没有找到一种叫myvar 变量,确,咱们数据中并没有这个变量。List 巧妇难为无米之炊。红色信息下面尚有一种天兰色 r(111),用鼠标点击,即可弹进一种协助信息框,给出错误更详尽解释。再例如,咱们在求五数概略时,误把 sum 写成了sun. sununrecognized command:sunr(199);显示说不结识sun 这个命令。附录:常用命令Chapter2命令语句2.1 掌握命令语句格式by varlist: command varlist =exp if exp in range weight ,options注: 表达可有可无项,显然只有com

5、mand 是必不可少,下面结合例子分项来解说命令各个构成某些。2.2 命令commandby varlist: command varlist =exp if exp in range weight ,options. cd d:/stata9. use auto,clear /打开美国汽车数据文献auto.dta,背面clear 表达先清除内存中也许存在数据集. summarize /*诸多命令可单独使用,单独使用时,普通是对所有变量进行操作,等价于背面加上代表所有变量_all。 */. summarize _all /注意到该命令输出成果与上一种命令完全同样. sum /与前一命令等价,s

6、um 为summarize 略写. su su 是summarize 最简化略写,不能再简化为s. s /简写前提是不引起混淆。执行这个命令将浮现错误信息unrecognized command:s2.3 变量varlistby varlist: command varlist =exp if exp in range weight ,optionsvarlist 表达一种变量,或者各种变量,各种变量之间用空格隔开。. cd d:/stata9. use auto,clear. sum price /求价格观测值个数,平均值,方差,最小值和最大值. su p /变量和命令均可略写,注意到两个成

7、果完全同样. su t /分数据中有两个变量开首字母为t(trunk 和turn),因此STATA 以为t 为模糊省略。m ambiguous abbreviation /红色为错误信息. sum tr tu /求trunk 和turn 变量五数概略记录变量名称除如下字符不能用作变量名外,任何字母、字母与数字(单独数字也不容许)组合均可用做变量名:_all _b byte _coef _cons double float if in int long _n _N _pi _pred _rc _se _skip using with基本规定如下:_ 第一种字元可以是英文字母或,但不能是数字;_

8、最多只能涉及32 个英文字母、数字或下划线;_ 由于STATA 保存了诸多以“_ “开头内部变量,因此最佳不要用为第一种字元来定义变量。2.4 分类操作by varlistby varlist: command varlist =exp if exp in range weight ,options如果需要分别懂得国产车和进口车价格和重量,可以采用分类操作来求得,. cd d:/stata9. use auto,clear. by foreign:sum price weight /分别计算国产车和进口车价格和重量但如果执行下面两个命令,将浮现错误*/. sort price /按价格从低到高

9、重新排序. by foreign:sum price weight*not sorted/* 系统提示没有排序,这是由于by varlist 在执行时规定内存中数据是按照by 背面变量排序。当咱们用sort price 重新排序后,就打乱了本来按照foreign 排序,因此浮现了错误提示。改正办法是:*/. sort foreign /按国产车和进口车排序. by foreign:sum price weight*更简略方式是把两个命令用一种组合命令来写。. by foreign,sort:sum price weight如果不想从小到大排序,而是从大到小排序,其命令为 gsort。.gsor

10、t - price /按价格从高到低排序. gsort foreign price /*先把国产车都排在前,进口车排在背面,然后在国产车内再按价格从大小到排序,在进口车内部,也按从大到小排序*/2.5 赋值及运算=expby varlist: command varlist =exp if exp in range weight ,options例:生成一种新价格变量nprice,该变量取值为原汽车价格变量price 基本上涨10 元. cd d:/stata9. use auto,clear. gen nprice=price+10 /生成新变量nprice,其值为price+10. lis

11、t price nprice /比较一下两个变量取值/*上面命令generate(略写为gen) 生成一种新变量,新变量变量名为nprice,新价格在原价格基本上均增长了10 元。. replace nprice=nprice-10 /*命令replace 则直接变化原变量赋值,nprice 调减后与price 变量取值相等*/. list price nprice /再比较一下两个变量,相等。2.6 条件表达式if expby varlist: command varlist =exp if exp in range weight ,options例:若只想查看国产车品牌和价格,则加入筛选条

12、件if foreign=0 */. cd d:/stata9. use auto,clear. list make price if foreign=0*只查看价格超过1 万元进口车(同步满足两个条件),则. list make price if foreign=1 & price10000*查看价格超过1 万元或者进口车(两个条件任满足一种). list make price if foreign=1 | price10000*分类型查看价格超过1 万元汽车品牌和价格. by foreign,sort:list make price if price100002.7 范畴筛选in range

13、by varlist: command varlist =exp if exp in range weight ,options如果要计算较低前10 台车平均价格,则要先按价格排序,然后仅对前10个车价格求平均值. cd d:/stata9. use auto,clear. sort price. sum price in 1/5注意“1/5”中,斜杠不是除号,而是从1 到5 意思,即1,2,3,4,5。如果要计算前10 台车中华人民共和国产车平均价格,则可将范畴和条件筛选联合使用。. sum price in 1/10 if foreign=02.8 加权weightby varlist:

14、command varlist =exp if exp in range weight ,options任务:下表是 年湖北省高考640 分及以上成绩一分一段人数记录,第一列score 为高考分数,第二列num 为该分数段人数。当前咱们规定640 分及以上考生平均分数。score num650 193649 26648 23647 16646 21645 26644 32643 23642 38641 29640 38操作:先将上面表格复制,然后进入STATA,执行如下命令. clear /清空STATA. edit然后把光标定位在表格第一行第一列,点右键,选取粘贴(paste),上表数据便被

15、复制到STATA 中,退出数据编辑器sum score /思考:得到成果是640 分及以上考生平均分吗?简朴地使用sum 命令得到平均成绩显然是不对的,由于各个分数下人数是不同样,对的计算需要加权,加权办法是. sum score weight=num / *加权计算,比较该成果与sum score 区别,事实上,不用权重选项时,相称于权重相等。*/. sum score w=n /w 为weight 略写,n 为num 简写,两命令等价2.9 其她可选项,optionsby varlist: command varlist =exp if exp in range weight ,optio

16、ns许多命令均有某些可选项例如,咱们不但要计算平均成绩,还想懂得成绩中值,方差,偏度和峰度等*/. sum score,detail. sum score,d /d 为detail 略写,两个命令完全等价注意,成果中显示了 1%,5%等分位数,意思是把变量从小到大排序,第1%位置处取值是多少,第10%位置上取值是多少。显然,50%位置处取值是中位数。此外,加了detail 选项后,还得到最小前5 个数,最大5 个数,以及峰度和偏度等。*再如,list 命令也有某些可选项. cd d:/stata9. use auto,clear. list price in 1/30,sep(10) /每10

17、 个观测值之间加一横线. list price in 10/30,sep(2) /每2 个观测值之间加一横线. list price,nohead /不要表头Chapter3 数据3.1 打开示例数据和网络数据:use3.1.1 示例数据示例数据为STATA 协助文献中所用数据,其后辍名为.dta,如果在STATA软件当前程径下,直接用use 命令即可打开;如果不在当前程径下,则可以使用sysuse 命令打开。. use auto,clear /打开汽车数据auto.dta. cd d:/ /变化途径到d:/. use auto,clearfile auto.dta not found /系统

18、提示无法找到文献,由于auto.dta 不在d:/r(601);. sysuse auto,clear /无论当前程径是什么,该命令均能打开系统自带文献3.1.2 从网络获取数据上述示例数据也许没有所有下载到你所用电脑中,因而简朴地使用use和sysuse 命令时,也许浮现错误,如. use nlswork,clearfile nlswork.dta not found此时,如果拟定该数据为示例数据,可以直接通过网络获取,其命令为:. use /从网站获取数据,或者. webuse nlswork,clear /与前一命令等价,从STATA 官方数据库获取数据webuse只能从,如果不是该网站

19、数据,webuse失效,只能把网站地址完全写出来。使用该命令时必要确保网络连接正常.另一种网络数据较多地方是波士登大学数据中心,伍德里奇计量经济学导论一书中所使用所有数据都可以通过该数据中心获得。例如. use 即打开教材中例2.3 中所使用CEO 数据。use 命令只能打开后辍名为“*.dta”格式数据,.dta 格式以外数据,STATA不能直接读取,需要从外部读入,最简朴而直接办法是复制和粘贴。但是有时没有其她软件,例如,咱们有SAS 格式或SPSS 格式数据,但没有SAS 软件和SPSS 软件,此时需要用STATA 提供其她命令或者使用transfer 数据格式转化软件。在讨论其她输入或

20、导入数据办法之前,咱们先来学习一点数据类型知识。3.2 数据类型STATA 普通把变量划分为三类:分别是数值型,字符型和日期型3.2.1 数值变量:用0、1、29 及+、(正负号)与小数点“(.)”来表达。在输入数据时,逗号不能被辨认,如1,024 应当直接写成1024.5-55.25.2e+35.2e-2背面两个数据为科学计数法数据,分别表达5200 和0.052.其中e 相称于10,因而5.2e+3 意思是:5.2*103=5200数值型变量按其精度区别,又有五种类型,分别是:存贮类型 最小 最大 0-领域 字节-byte -127 100 +/-1 1int -32,767 32,740

21、 +/-1 2long -2,147,483,647 2,147,483,620 +/-1 4float -1.*1038 1.*1036 +/-10-36 4double -8.*10307 8.*10307 +/-10-323 8当运算精度规定很高时候,需要将变量设立成浮点型或双精度型。另注意1 和1.0000 精度是不同,前者在(0.5,1.5)区间内近似,而后者在(0.99995,1.00005)区间内近似。若多次运算重复取四舍五入,精度较低时将使计算误差迅速变大,然而,精度高时占用内存资源较多。下面命令有助于理解变量存贮类型变换。. clear. set obs 1 /将设定一种观测

22、值obs was 0,now 1 /提示信息说,之前系统中没有观测单位,当前有了一种. gen a=1 /生成一种新变量a,令a 取值为1. d /*d 为describ 命令略写,describ 命令显示数据集属性信息,注意观测显示成果中,a storage type 为float 型,浮点型为默认类型*/Contains dataobs:1vars:1size:8 (99.9% of memory free)storage display valuevariable name type format label variable labela float %9.0gSorted by:No

23、te:dataset has changed since last saved. compress /在不损害信息基本上压缩,使数据占用空间尽量小a was float,now byte /a 由浮点型变为了字节型. d / 注意a storage type 当前为byte 型. replace a=101 /* 注意a storage type 当前自动升为int 型,由于byte 最大只能为100*/a was byte now int(1 real change made). replace a=100. compress. d /重新变回到byte 型. replace a=32741

24、 /直接变到long 型,由于int 型最大只能到32740. gen double b=1 /直接生成双精度变量b. recast double a /将a 变成双精度变量b. d /注意到a 和b 均为双精度型3.2.2 字符串变量字符变量普通是某些身份信息,如姓名,地名。此外,定类变量也可以用字符变量来表达,如性别分为“男”和“女”。字符串变量由字母或某些特殊符号构成(如地名籍贯变量,迁出地,住址,职业等等)。字符串变量也可以由数字来构成,但数字在这里仅代表某些符号而不再是数字。字符串变量普通以引号“”注标,并且引号普通不被视同为字符一某些,注意这里引号必要是英文输入状态下引号。字符串最

25、多可以达244 个字符。普通用str#来表达字符多少,如str20表达将有20 个字符。普通三个中文字姓名需要6 个字符。字符型示例“String”“string” string”string ” /特殊字符串,表达空字符,缺失值。” ” /注意与空字符串区别,具有一种空格”125.27” /”125.27”由于有双引号,将被视同为字符而非数值。“$2,343.68”“I love you”“旺材是条狗”注意前四个字符串均不相似,大小写是不同样,有无空格及空格位置不同,都表达不同字符串。对于”125.27”这样数值型字符串,可以用real()函数或者destring 命令转化成数值型变量。详细

26、操作见3.3.1。3.2.3 日期型变量在STATA 中,1960 年1 月1 日被以为是第0 天,因而1959 年12 月31 日为第-1 天, 年1 月25 日为15000 天。对日期型变量讨论将在背面时间序3.2.4 缺失值没故意义计算成果显示为”.”. display 2/0另一种状况是,数据中具有缺失值,而STATA 默认缺失值也用“.”来表示。在有些数据文献中,缺失值不是用“.”或者空来表达,而是用-9996 等来表达,如果要将其所有替代为“.”,或者反之,将“.”替代为-9996,命令为:. mvencode age,mv(-9996). mvdecode age,mv(-999

27、6)3.3 数据类型转化任务:将 destring1,destring2 和tostring 中数据类型进行互相转化*3.3.1 字符型转化成数值型:destring*destring数据中数据全为字符型,转换为数值型.webuse destring1,clear.des /*注意到所有变量存贮类型(storage type)均为字符型str#,其中#号表达字符串长度*/Contains data from obs:10vars:5 3 Mar 10:15size:240 (99.9% of memory free)storage display valuevariable name type

28、 format label variable labelid str3 %9snum str3 %9scode str4 %9stotal str5 %9sincome str5 %9s.sum /由于所有变量为字符型,因此不能进行数值计算.gen nincom=incom+10 /因字符不能进行四则运算,不能进行加法运算*type mismatch /系统提示类型不匹配,由于income 为字符型,10 为数值型.destring,replace /所有转换为数值型,replace 表达将本来变量(值)更新.sum /注意到转换为数值型后,可以求五数概略了.gen nincom=income

29、*1.3 /转换后,可以运算,工资终于涨了30%!.list nincom income /工资终于涨了30%!*-将字符型数据转换为数值型数据:去掉字符间空格-*destring2 数据集中data 变量为字符型,且年月日间有空格,转移为数据型.webuse destring2,clear.des /注意到所有变量均为字符型 str.list date /注意到date 年月日之间均有空格date-1. 1999 12 102. 07 083. 1997 03 024. 1999 09 00.destring date,replace /想把date 转换成数值型,但失败了,系统提示说*da

30、te contains non-numeric characters;no replace /*由于具有非数值型字符(即空格),因而没有更新,也即转换命令没有执行。*/.destring date,replace ignore(“ ”) /*忽视空格,然后转换,注意这里” “中间有一种空格,不是”。*/date:characters space removed;replaced as long /成功转换为long 型.des /注意到date storage type 已变为long.list date /注意到空格消失了date-1. 199912102. 07083. 19970302/

31、*与date 变量类似,变量price 前面有美元符号,变量percent 后有百分号,换为数值型时需要忽视这些非数值型字符。*/.destring price percent,gen(price2 percent2) ignore(“$ ,%”).list /注意到price2 前面$号消失,percent2 背面%号消失date price price2 percent percent2-1. 19991210 $2,343.68 2343.68 34% 342. 0708 $7,233.44 7233.44 86% 86.d /注意到price2 和percent2 均变为数据值型变量d

32、ouble 和byte*3.3.2 数值型转化为字符型:tostring.webuse tostring,clear /*该数据中年月日数据类型不同样,不能直接相加生成一种反映日期新变量*/.des /注意到month 为字符型,而年和日为数值型.list.gen date1=month+”/”+day+”/”+year /将年月日构成一种新日期变量type mismatch /由于month 为字符型,年和日为数值型,不同类型不能相加r(109);.tostring year day,replace /将年和日转化为字符型.des /注意到,当前所有变为字符型.gen date1=month

33、+”/”+day+”/”+year /将年月日构成一种新日期变量.list /生成了一种新变量date1,其为三个字符串和两个”/”符号连接而成.gen date2=date(date1,”mdy”) /* date()为日期函数,它以1960 年1 月1日为第0 天,计算从那天起直到括号中指定某天date1一共过了多少天。”mdy”指定date1 排列顺序,这里是按照月日年顺序来表达日期。*/.list /新生成date2 表达总天数*小游戏:请算算你活了多少天?示例:一种生于1975 年12 月27 日家伙,她活了?.di date(“1975/12/27”,”ymd”)3.4 数据显示格

34、式:format/*format 只控制数据显示格式,并不变化内存中数据大小。*/.webuse census10,clear /美国人口普查数据.des /第三列显示了数据格式display formatstorage display valuevariable name type format label variable labelstate str14 %14s Stateregion int %8.0g cenreg Census regionpop long %11.0g Populationmedage float %9.0g Median age*注意到,stata 变量格式为

35、%14s,表达右对齐,共14 个字符,%为固定用法.list in 1/4 /注意不同显示格式:均为右对齐state region pop medage-1. Alabama South 3893888 29.32. Alaska West 401851 26.13. Arizona West 2718215 29.24. Arkansas South 2286435 30.6.format state %-14s / 该命令使stata 显示格式左对齐,14 前面多了个负号.list in 1/4 /注意不同显示格式,state 当前左对齐了+-+state region pop medag

36、e-1. Alabama South 3893888 29.32. Alaska West 401851 26.13. Arizona West 2718215 29.24. Arkansas South 2286435 30.6.format region %-8.0g / *region 变量看起来是字符型变量,但事实上为数据型,它也可以左对齐,同样是加一种负号.list in 1/4 /注意region 当前左对齐了.format pop %11.0gc /*pop 显示格式为%11.0g,背面加上c,则每三位数间用逗号分开,c 为comma 意思.*/.list in 1/4 /成果加

37、上了逗号,但是第五个观测值没有任何变化state region pop medage-1. Alabama South 3,893,888 29.32. Alaska West 401,851 26.13. Arizona West 2,718,215 29.24. Arkansas South 2,286,435 30.65. California West 23667902 29.9*由于这个数太大,加逗号将超过11 位数,咱们可以先把总位数增长.format pop %12.0gc /把pop 显示总长度数增长到12 位.list in 5 /当前所有pop 都按逗号分开了5. Cali

38、fornia West 23,667,902 29.9.format medage %8.1f /规定所有medage 都显示一位小数.list in 1/4state region pop medage-1. Alabama South 3,893,888 29.32. Alaska West 401,851 26.13. Arizona West 2,718,215 29.24. Arkansas South 2,286,435 30.6.gen id=_n /生成一种新变量id,取值依次为1,2,3.replace id=9842 in 3 /将id 第三个变量替代为9842.list

39、in 1/3state region pop medage id-1. Alabama South 3893888 29.3 12. Alaska West 401851 26.1 23. Arizona West 2718215 29.2 9842.format id %05.0f /对于编号,咱们但愿前面用零使得位数对齐.list in 1/3 /注意到通过在前面补零,所有id 都成了5 位数。state region pop medage id-1. Alabama South 3893888 29.3 000012. Alaska West 401851 26.1 000023. Ar

40、izona West 2718215 29.2 098423.5 在STATA 中直接录入数据:input3.5.1 菜单式操作任务:按学号录入五个学生经济学成绩id economy1 402 803 904 705 53操作:(1)点击图标在打开数据表格第一列中录入五个姓名在第二列中录入另五个成绩双击 var1 弹出对话框将变量改名为id在label 中写入学号退出弹出窗口;双击 var2 弹出对话框将变量改名为name在label 中写入姓名关闭数据编辑器(2)点击图标保存数据给数据命令为student 退出在建立数据文献后,如果没有存盘,这个文献即是一种“暂时”数据文献,它将随着退出STATA 系统时而消失。当数据文献被存储在后,它将成为一种“永久性”数据文献,顾客可以在后来经常使用它而不必重新建立之。3.5.2 命令操作任务:按学号录入五个学生学号和姓名id name economy1 John 402 Chris 803 Jack 904 Huang 435 Tom 70操作:在command 窗口中键入(注:前面点号不必健入,每完毕一行按

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服