stata命令整理

上传人:小** 文档编号:58670178 上传时间:2018-10-31 格式:DOCX 页数:6 大小:94.55KB
返回 下载 相关 举报
stata命令整理_第1页
第1页 / 共6页
stata命令整理_第2页
第2页 / 共6页
stata命令整理_第3页
第3页 / 共6页
stata命令整理_第4页
第4页 / 共6页
stata命令整理_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《stata命令整理》由会员分享,可在线阅读,更多相关《stata命令整理(6页珍藏版)》请在金锄头文库上搜索。

1、Stata 命令语句格式:命令语句格式: by varlist: command varlist =exp if exp in range weight , options 1、by varlist: *如果需要分别知道国产车和进口车的价格和重量,可以采用分类操作来求得, sort foreign /按国产车和进口车排序 . by foreign: sum price weight *更简略的方式是把两个命令用一个组合命令来写。 . by foreign, sort: sum price weight 如果不想从小到大排序,而是从大到小排序,其命令为 gsort。 . sort - price

2、 /按价格从高到低排序 . sort foreign -price /*先把国产车都排在前,进口车排在后面,然后在国产车内再按价格从 大小到排序,在进口车内部,也按从大到小排序*/ 2、=exp赋值运算赋值运算 . gen nprice=price+10 /生成新变量 nprice,其值为 price+10 /*上面的命令 generate(略写为 gen) 生成一个新的变量,新变量的变量名为 nprice,新的价格在原价格的基础上均增加了 10 元。 . replace nprice=nprice-10 /*命令 replace 则直接改变原变量的赋值, nprice 调减后与 price

3、变量取值相等*/ 3、if exp条件表达式条件表达式 . list make price if foreign=0 *只查看价格超过 1 万元的进口车(同时满足两个条件) ,则 . list make price if foreign=1 & price10000 *查看价格超过 1 万元或者进口车(两个条件任满足一个) . list make price if foreign=1 | price10000 4、in range范围筛选范围筛选 sum price in 1/5 注意“1/5”中,斜杠不是除号,而是从 1 到 5 的意思,即 1,2,3,4,5。 如果要计算前 10 台车中的

4、国产车的平均价格, 则可将范围和条件筛选联合使用。 . sum price in 1/10 if foreign=0 5、weight 加权加权 sum score weight=num 其中,num 为每个成绩所对应的人数 6、, options其他可选项其他可选项 例如,我们不仅要计算平均成绩,还想知道成绩的中值,方差,偏度和峰度等*/ . sum score, detail . sum score, d /d 为 detail 的略写,两个命令完全等价 . list price, nohead /不要表头Stata 数据类型转换数据类型转换 1、字符型转化成数值型 destring, r

5、eplace /全部转换为数值型, replace 表示将原来的变量(值)更新 destring date, replace ignore(“ ”) 将字符型数据转换为数值型数据: 去掉字符间的空格 destring price percent, gen(price2 percent2) ignore(“$ ,%”) 与 date 变量类似,变量 price 前面有美元符号,变量 percent 后有百分号,换为数值型时需要忽略这些非数值型字符 2、数值型转化为字符型tostring year day, replace /将年和日转化为字符型 gen date1=month+”/”+day+”

6、/”+year /month day 变为字符型后可以运算,将年月日构成一 个新的日期变量 gen date2=date(date1,”mdy”) /* date()为日期函数,它以 1960 年 1 月 1 日为第 0 天,计算从那天起直到括号中指定的某天 date1 一共过了多少天。 ”mdy”指定 date1 的排 列顺序,这里是按照月日年的顺序来表示日期。*/数据显示格式数据显示格式 /*format 只控制数据的显示格式,并不改变内存中数据的大小。 */ 变量的格式为 %14s,表示右对齐,共 14 个字符,%为固定用法(字符变量跟 s,数值变 量跟 g) ormat state %

7、-14s / 该命令使 stata 的显示格式左对齐,14 前面多了个负号 format pop %11.0gc /*pop 的显示格式为 %11.0g,后面加上 c,则每三位数间 用逗号分开,c 为 comma 的意思.*/ format medage %8.1f /要求所有的 medage 都显示一位小数 format id %05.0f /对于编号,我们希望前面用零使得位数对齐,通过在前面补零,所有的 id 都成了 5 位数。导入导入/导出其他格式数据导出其他格式数据 1、数据导入、数据导入 insheet using 3origin.csv/txt, clear insheet usi

8、ng 3origin.txt, double clear 当数据中某个变量的位数特别长或者对导入数据的精 度要求很高的时候,需要在该命令后面加 double 选项。 2、数据导出 outsheet using myresult.asc, nonames 如果不希望在第一行存储变量名,则可以使用 nonames 选项 outsheet using myresult.asc, nonames replace 如果文件已经存在,则需要使用 replace 选项数据合并数据合并 1、 纵向合并 use male, clear /打开记录男生信息的数据文件 male append using femal

9、e /将记录女生信息的 female 文件追加到当前数据集中 save mydata1, replace 2、 横向合并 use economy,clear /打开经济学成绩数据文件 sort id /按学号排序 save economy, replace /重新保存一下 use student,c clear /打开学生基本信息数据文件 sort id /按学号排序 merge id using economy /以学号为关联, 将学生的信息和成绩一一对应对接 tab _merge /显示对接情况,3 表示成功对接, 1 和 2 表示未成功对接 drop _merge /去掉标识对接是否成功

10、变量_mergeStata 很多命令可单独使用,单独使用时,一般是对所有变量进行操作,等价于后面加上代 表所有变量的_all数据重整数据重整 1、长宽转换、长宽转换 宽:宽:长:长:1)宽变长)宽变长 use mywide, clear reshape long math economy, i(id name) j(year) /数据重整,宽变长 save mylong, replace 2)长变宽)长变宽 reshape wide *或者 use mylong, clear reshape wide math economy, i(id name) j(yearr) /数据重整,长变宽 sa

11、ve mywide2, replace 2、多列数据转为少数几列、多列数据转为少数几列 有些数据集虽然有很多列,但实际上只有一个变量,利用 stata 转化成一项数据。stack var1-var6, into(x) clear x 是新生成变量的名称 drop _stack 变量 stack 记录观测值原来所在行数 3、数据转置数据转置 use math,clear xpose, clear变量运算:变量运算: Stata 中,加( +)号同样可用于字符运算,当加号出现在两个字符之间时,两个字符 将被连成一个字符。比如把”我爱” “STATA”合并在一起,命令为: . scalar a=”我

12、爱” +“STATA”一些运算函数:一些运算函数: comb(n,k) 从 n 中取 k 个的组合 fill() 自动填充数据 int(x) 取整 log10(x) 以 10 为底的对数 mod(x,y) 求余数 round(x) 四舍五入 di round(3.345,.1) /四舍五入到十分位,结果为 3.3 di round(3.345,.01) /四舍五入到百分位,结果为 3.35 di round(335.1,10) /四舍五入到十位,结果为 340 sqrt(x) 开更号 substr(s,n1,n2) 从 S 的第 n1 个字符开始,截取 n2 个字符 word(s,n) 返回

13、s 的第 n 个字符 _n 当前观察值的序号 _N 共有多少观察值 gen y=sum(x) /求列累积和 egen z=sum(x) /求列总和 egen avgx=mean(x) /求列均值 egen byte dxy = diff(x y) /当 x 与 y 相等时,differ 取 0,若不相等为 1分离变量值分离变量值 clear input str15 x “10*123“ “543*21“ “12*422“ “43532*32134“ “4349*1“ end gen a=strpos(x,“*“) /计算出计算出*所在的位数所在的位数 gen b=substr(x,1,a-1)

14、 /取取*前面的字符前面的字符 gen c=substr(x,a+1,.) /取取*后面的字符后面的字符stata 中,系统缺失值大于任何一个数据,因此在生成分类哑变量时: gen agegrp2=(age=65) if age. 生成的数据中, 将缺失值排除在外生成分组变量:生成分组变量: clear set obs 100 /设定 100 个观察值 gen age=_n /生成一个假设的年龄变量 age,依次取 1, 2, , 100 recode age (min/30=1) (30/60=2) (60/max=3),gen(agegrp) /*生成新的分组变量 agegrp, 当年 龄

15、 age 在 30 及以下时取值为 1,30 到 60 为 2,60 以上为 3*/分组运算:分组运算: by x, sort: gen n1=_n 根据 x 的不同,生成 n1 变量对不同类的 x 计数 by hhid,sort: egen mage=mean(age) /根据不同类别求平均年龄 bysort hhid (age): gen nid1=_n /括号中的变量 age 只排序,不参于分组。 bysort hhid age: gen nid2=_n / hhid 和 ag e 都既用来参与排序也分组encode country, gen(country1) 将文本变量转化为数值变量

16、 display 5+9 显示计算结果 sum price weight 描述统计:求价格和重量的观察值个数、平均值、标准差、最小值和最 大值 scatter price weight 绘出价格和重量的散点图 line price weight, sort 绘出价格和重量的折线图 clear 清除内存中原有内容 cd d:/stata9 在打开数据之前,先定位数据的位置 use 打开 STATA 格式的数据文件 set obs 5 /设定 5 个观察值 dir 查看当前路径下有哪些文件 save mydata /保存数据,数据文件名为 mydata save mydata, replace 如果同一文件夹下已经存有 mydata.dta,而你又要再次执行 save mydata 时 edit 编辑数据 log 将输出结果存放入结果文件 gen id=_n /生成一个新

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号