Stata命令整理教学内容

上传人:雨水 文档编号:146052982 上传时间:2020-09-25 格式:PDF 页数:6 大小:56.09KB
返回 下载 相关 举报
Stata命令整理教学内容_第1页
第1页 / 共6页
Stata命令整理教学内容_第2页
第2页 / 共6页
Stata命令整理教学内容_第3页
第3页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、资料收集于网络,如有侵权请联系网站删除 word 可编辑 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 如果不想从小到大排序,而是从大到小排序,其命令

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

3、 调减后与price 变量取值相等 */ 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, replace /全部转换

5、为数值型,replace 表示将原来的变量(值)更新 destring date, replace ignore(“ ”) 将字符型数据转换为数值型数据:去掉字符间的空格 destring price percent, gen(price2 percent2) ignore(“$ ,% ” ) 与 date 变量类似,变量price 前 面有美元符号,变量percent 后有百分号,换为数值型时需要忽略这些非数值型字符 2、数值型转化为字符型 资料收集于网络,如有侵权请联系网站删除 word 可编辑 tostring year day, replace /将年和日转化为字符型 gen date

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

7、 跟 g) ormat state %-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

8、 using 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 female

9、/将记录女生信息的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 /去掉标识对接是否成功变量_me

10、rge 资料收集于网络,如有侵权请联系网站删除 word 可编辑 Stata 很多命令可单独使用,单独使用时,一般是对所有变量进行操作,等价于后面加上代 表所有变量的 _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) /数

11、据重整 ,长变宽 save 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” 资料收集于网络,如有侵权请联系网站删除 word 可编辑 一些运算函数: 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 个

13、字符 word(s,n) 返回 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, 当年 龄 age 在 30 及以下时取值为1,30 到 60 为

15、 2,60 以上为 3*/ 资料收集于网络,如有侵权请联系网站删除 word 可编辑 分组运算: 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) 将文本变量转化为数值变量 disp

16、lay 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 /生成一个新变量id,根据观测值排列顺序从上到下取值依次为123 replace id=9842

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

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

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