第六讲stata程序管理_第1页
第六讲stata程序管理_第2页
第六讲stata程序管理_第3页
第六讲stata程序管理_第4页
第六讲stata程序管理_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六讲第六讲 stata程序编写与管理程序编写与管理第一种方法:直接写第一种方法:直接写do file 打开do编辑器: doedit 一个简单的do file display “hello,world” exit /告诉stata在这程序结束,exit可不写 保存为 hello.do 在command 窗口输入 do hello stata 会显示 display “hello,world” hello,world第二种:在第二种:在stata窗口中输入窗口中输入 stata显示: program hello 1. display ”hello,world“ 2. end 执行: hello

2、 显示: hello,world 将hello,world修改为hello,cufe program hello hello already defined r(110) 解决方法:program drop hello注意,program名不能与stata中的命令名一致 program des display ”hello,world“ end第二种:在第二种:在stata窗口中输入窗口中输入 program hello display hello,cufe end 查找语法错误: set trace on 关闭该功能: set trace off第三种:第三种:do file中的中的prog

3、ram program hello display “hello,world” end stata中输入: do hello stata 显示: hello already defined r(110) stata 输入: program drop hello do hello /或用 run hello hello第四种:第四种:do file的扩展的扩展 program hello dis “hello,world” end hello exit 如果加上program drop hello 解决方法: capture 第五种:第五种:ado file ado file是stata中的可执

4、行文件 program hello dis “hello,world” end exit 执行时输入: program drop hello hello stata显示: hello,world ado file的保存地址的保存地址 ado file只有放在指定的文件夹中才能运行 adopath命令 adopath + c:adopersonal /增加新的adofile存放地址 adopath - c:adopersonal /移除ado file目录 注意: 可以将自己的程序统一存放于 D:stataadopersonalmyado 同时在pro文件中做如下定义 adopath + D:s

5、tataadopersonalmyado 该文件夹下可以进一步设定a-z的子文件夹 一个完整的一个完整的do file文件文件 capture log close /检查log的状态为close log using x,replace /打开log x set more off capture program drop hello program hello dis “hello,world” end log close / 关闭log exit /保存为sj.do do file的引用的引用 do sj exit /保存为sj2.do do sj2 assert 的用法的用法 assert是

6、stata的重要命令,如果assert后的表达式为true,则stata继续执行命令,否则stata会提示出错 capture program drop sj2 sysuse auto,clear assert foreign2 exit /保存为sj2.dopreserve的用法的用法 preserve 可以避免数据在程序执行后有所变动 sysuse auto,clear preserve / 备份当前状态S1 drop if price10000 sum save nauto,replace restore /恢复到状态S1 sum use nauto,clear quietly的用法的用

7、法 quietly可以避免列印过多的结果 比较两段代码 capture program drop sj program sj sysuse auto,clear drop if price1000 save nauto,replace end capture program drop sj program sj sysuse auto,clear quietly drop if price1000 save nauto,replace end 单值单值 Scalar 存放数值 scalar a=3 scalar b=ln(a)+5 dis a dis b 存放字符串 scalar c=.a d

8、is c scalar s1=“hello,world” scalar s2=substr(s1,1,5) dis s1 dis s2 执行命令后的单值结果执行命令后的单值结果 sysuse auto,clear sum price return list dis r(N) scalar range=r(max)-r(min) dis range gen qq=r(sd) list qq in 1/10 单值单值 管理管理 scalar dir scalar list /显示单值的内容 scalar drop a / 删除单值 scalar list scalar drop all /删除所有

9、单值 scalar list 暂元变量暂元变量local macro local:在一个do或ado file中发挥作用暂元的定义与引用 存放数字 local a=5 dis a local b=a+7 dis b 存放文字 local name1 “sj:” dis “name1” local name2 “中央财经大学会计学院” dis “name2” local name3 name1name2 dis “name3” 存放变量名称 sysuse auto,clear local varllist price weight sum varlist Local:数学运算符的处理:数学运算符

10、的处理 local a “2+2” dis a dis “a” / 看这两个有何区别 local b=2+2 / 注意与a的定义的区别 dis b dis “b” 暂元中的暂元暂元中的暂元 local a1=2 local a2 “var” local a3=2*a1 local a4 aa1 local a2a1=2*a3 dis a1 dis “a2” dis a3 dis “a4”全局暂元全局暂元global macro:定义与引用方式:定义与引用方式 全局暂元:在整个stata运行的过程中一直存在 定义与引用方式: global aa “This is my first program

11、!” dis “$aa” global x1=5 global x2=2$x1 dis $x2 示例: sysues auto,clear global option “,robust” global reg “regress” local x1 “price mpg foreign” $reg rep78 x1 $option local x2 “price mpg foreign trunk” $reg rep78 x1 $option $reg rep78 x2 $option 暂元的管理暂元的管理 macro list macro dir macro drop x2 macro dir

12、 x2 macro dir aa 暂时性变量暂时性变量 tempvar sysuse auto ,clear tempvar x1 x2 gen x1=price*2 gen x2=ln(rep78) sum x1 x2 暂时性变量可以与永久变量同名循环语句循环语句 while 语句 forvalues 语句 foreach 语句条件循环语句:条件循环语句:while local j=0 while j5 dis aj local j=j+1 循环语句:循环语句:forvalues local i=1 local j=_N forvalues i=1(1)j dis aI forvalues

13、i=0(-1)-14 dis ai forvalues应用示例应用示例假设你有100个文件,分别为d1.dta,d2.dta,d100.dta 研究要求将这100个文件做纵向合并,写出程序 use d1.dta,clear local i=2 forvalues i=2(1)100 append using di.dta save finaldata,replace循环语句:循环语句:foreach foreach var of varlist x y z command 示例1:将auto.dta各变量的对数转换和缩尾处理 sysuse auto,clear local vars price

14、 weight length foreach v of varlist vars gen lnv=ln(v) winsor v,gen(vw) p(0.01) 条件语句:条件语句:if语法格式 格式1 if (条件) command 格式2 if(条件1) command1 else if(条件2) /这里可以没有if command2 条件语句:条件语句:if示例示例 scalar aa=1 if aa=1 dis “这小子真帅!” else if aa=0 dis “这女孩真亮!” 引用引用stata命令的返回值命令的返回值 留存在内存中的结果 r-class ,与模型估计无关的命令,如sum e-class, 与模型估计有关的命令,如regress s-class,其他命令, 如list c-class,存储系统参数 显示留存值的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论