Stata学习笔记之欧阳道创编.docx
- 文档编号:3128116
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:18
- 大小:28.52KB
Stata学习笔记之欧阳道创编.docx
《Stata学习笔记之欧阳道创编.docx》由会员分享,可在线阅读,更多相关《Stata学习笔记之欧阳道创编.docx(18页珍藏版)》请在冰豆网上搜索。
Stata学习笔记之欧阳道创编
以下命令均采用小写字母
时间:
2021.03.06
创作:
欧阳道
Chapter1stata入门
1.1打开数据
use"D:
\Stata9\auto.dta",clear用use命令打开数据
sysuseauto,clearauto为系统数据sysuse为打开系统数据的命令
1.2获取帮助
Helpsummarizesummarize为需要获取帮助对象可以改为其他的需要帮助的对象
Finditsummarize,net寻找网络帮助summarize为需要获取帮助对象
Searchsummarize,net寻找网络帮助summarize为需要获取帮助对象
显示结果
Display5+9
1.3描述统计(summarize可简写成sum)
Useatuo,clear
Summarizeprice描述price的观察值个数、平均值、标准差、最小值、最大值
Sumweightsummarize可简写成sum
Sumweightprice同时完成上面两步
1.4绘图
Scatterpriceweightscatter为绘制散点图命令
Linepriceweight,sortline为绘制折线图命令,sort为排序,绘制折线图前需要先排序
1.5生成新的数据(generate可简写成gen)
Clear
Setobs1000设置观测值的组数
Genx=_n_n为观察值得序号
Geny=x+100
1.6控制结果输出显示
Listn
1.7设置屏幕滚动
Setmoreoff先设置此项则显示时,屏幕不停止
Setmoreon先设置此项则显示时,会使显示停止
1.8清除内存中原有内容
clear
1.9设置文件存取路径(cd)
Cdd:
\statad:
\stata为路径
1.10如果想知道当前路径下有哪些文件,可以用dir命令来列示
.dir
1.11假设你想在D盘的根目录下创建一个新的文件夹mydata来存放数据文件,
命令为mkdir。
mkdird:
\mydata
1.12错误提示
Listmyvar
上述命令试图显示变量myvar,但是结果窗口仅出现如下的显示
variablemyvarnotfound
r(111);
红色信息表明,没有找到一个叫myvar的变量,的确,我们的数据中并没有
这个变量。
List巧妇难为无米之炊。
红色信息下面还有一个天兰色的r(111),用鼠标点击,即可弹进一个帮助信
息框,给出错误的更详尽解释。
再比如,我们在求五数概略时,误把sum写成了sun
.sun
unrecognizedcommand:
sun
r(199);
显示说不认识sun这个命令。
附录:
常见命令
Chapter2命令语句
2.1掌握命令语句的格式
[byvarlist:
]command[varlist][=exp][ifexp][inrange][weight][,options]
注:
[]表示可有可无的项,显然只有command是必不可少的,下面结合例子分
项来讲解命令的各个组成部分。
2.2命令command
[byvarlist:
]command[varlist][=exp][ifexp][inrange][weight][,options]
.cdd:
/stata9
.useauto,clear//打开美国汽车数据文件auto.dta,后面的clear表示先清除内存中可能存在的数据集
.summarize/*很多命令可单独使用,单独使用时,一般是对所有变量进
行操作,等价于后面加上代表所有变量的_all。
*/
.summarize_all/注意到该命令输出结果与上一个命令完全一样
.sum//与前一命令等价,sum为summarize的略写
.susu是summarize的最简化略写,不能再简化为s
.s//简写前提是不引起混淆。
执行这个命令将出现错误信息
unrecognizedcommand:
s
2.3变量varlist
[byvarlist:
]command[varlist][=exp][ifexp][inrange][weight][,options]
varlist表示一个变量,或者多个变量,多个变量之间用空格隔开。
.cdd:
/stata9
.useauto,clear
.sumprice//求价格的观察值个数,平均值,方差,最小值和最大值
.sup//变量和命令均可略写,注意到两个结果完全一样
.sut//分数据中有两个变量的开首字母为t(trunk和turn),所以
STATA认为t为模糊的省略。
mambiguousabbreviation/红色为错误信息
.sumtrtu//求trunk和turn变量的五数概略统计
变量名称
除以下字符不能用作变量名外,任何字母、字母与数字(单独的数字也不允许)组合均可用做
变量名:
_all_bbyte_coef_consdoublefloatifinintlong_n_N_pi_pred_rc_se_skipusingwith
基本要求如下:
_第一个字元可以是英文字母或,但不能是数字;
_最多只能包括32个英文字母、数字或下划线;
_由于STATA保留了很多以“_“开头的内部变量,所以最好不要用为第一个字元来
定义变量。
2.4分类操作byvarlist
[byvarlist:
]command[varlist][=exp][ifexp][inrange][weight][,options]
如果需要分别知道国产车和进口车的价格和重量,可以采用分类操作来求得,
.cdd:
/stata9
.useauto,clear
.byforeign:
sumpriceweight//分别计算国产车和进口车的价格和重量
但如果执行下面两个命令,将出现错误*/
.sortprice//按价格从低到高重新排序
.byforeign:
sumpriceweight
*notsorted
/*系统提示没有排序,这是因为byvarlist在执行时要求内存中的数据是按照
by后面的变量排序的。
当我们用sortprice重新排序后,就打乱了原来按照
foreign的排序,所以出现了错误提示。
更正的办法是:
*/
.sortforeign//按国产车和进口车排序
.byforeign:
sumpriceweight
*更简略的方式是把两个命令用一个组合命令来写。
.byforeign,sort:
sumpriceweight
如果不想从小到大排序,而是从大到小排序,其命令为gsort。
.gsort-price/按价格从高到低排序
.gsortforeign–price/*先把国产车都排在前,进口车排在后面,然后在国产车内再按价格从大小到排序,在进口车内部,也按从大到小排序*/
2.5赋值及运算=exp
[byvarlist:
]command[varlist][=exp][ifexp][inrange][weight][,options]
例:
生成一个新的价格变量nprice,该变量的取值为原汽车价格变量price的基础上涨10元
.cdd:
/stata9
.useauto,clear
.gennprice=price+10//生成新变量nprice,其值为price+10
.listpricenprice//比较一下两个变量的取值
/*上面的命令generate(略写为gen)生成一个新的变量,新变量的变量名为
nprice,新的价格在原价格的基础上均增加了10元。
.replacenprice=nprice-10/*命令replace则直接改变原变量的赋值,nprice调减后与price变量取值相等*/
.listpricenprice//再比较一下两个变量,相等。
2.6条件表达式ifexp
[byvarlist:
]command[varlist][=exp][ifexp][inrange][weight][,options]
例:
若只想查看国产车的品牌和价格,则加入筛选条件ifforeign==0*/
.cdd:
/stata9
.useauto,clear
.listmakepriceifforeign==0
*只查看价格超过1万元的进口车(同时满足两个条件),则
.listmakepriceifforeign==1&price>10000
*查看价格超过1万元或者进口车(两个条件任满足一个)
.listmakepriceifforeign==1|price>10000
*分类型查看价格超过1万元的汽车的品牌和价格
.byforeign,sort:
listmakepriceifprice>10000
2.7范围筛选inrange
[byvarlist:
]command[varlist][=exp][ifexp][inrange][weight][,options]
如果要计算较低的前10台车的平均价格,则要先按价格排序,然后仅对前10
个车的价格求平均值
.cdd:
/stata9
.useauto,clear
.sortprice
.sumpricein1/5
注意“1/5”中,斜杠不是除号,而是从1到5的意思,即1,2,3,4,5。
如果要计算前10台车中的国产车的平均价格,则可将范围和条件筛选联合使用。
.sumpricein1/10ifforeign==0
2.8加权weight
[byvarlist:
]command[varlist][=exp][ifexp][inrange][weight][,options]
任务:
下表是2005年湖北省高考640分及以上成绩一分一段的人数统计,第一
列score为高考分数,第二列num为该分数段的人数。
现在我们要求640分及以
上考生的平均分数。
scorenum
650193
64926
64823
64716
64621
64526
64432
64323
64238
64129
64038
操作:
先将上面的表格复制,然后进入STATA,执行如下命令
.clear//清空STATA
.edit
然后把光标定位在表格的第一行第一列,点右键,选择粘贴(paste),上表数
据便被复制到STATA中,退出数据编辑器
sumscore//思考:
得到的结果是640分及以上考生的平均分吗?
简单地使用sum命令得到的平均成绩显然是不正确的,因为各个分数下的人数是
不一样的,正确的计算需要加权,加权的办法是
.sumscore[weight=num]/*加权计算,比较该结果与sumscore的区别,
实际上,不用权重选项时,相当于权重相等。
*/
.sumscore[w=n]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Stata 学习 笔记 欧阳 创编
![提示](https://static.bdocx.com/images/bang_tan.gif)