Stata命令整理.docx

上传人:rrsccc 文档编号:10428180 上传时间:2021-05-15 格式:DOCX 页数:9 大小:37.34KB
返回 下载 相关 举报
Stata命令整理.docx_第1页
第1页 / 共9页
Stata命令整理.docx_第2页
第2页 / 共9页
Stata命令整理.docx_第3页
第3页 / 共9页
Stata命令整理.docx_第4页
第4页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Stata命令整理.docx》由会员分享,可在线阅读,更多相关《Stata命令整理.docx(9页珍藏版)》请在三一文库上搜索。

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 ifforeign=0* 只查看价格超过1 万元的进口车(同时满足两个条件) ,则. list make price if foreign=1 & price10000* 查看价格超过 1万元或者进口车(两个条件任满足一个). list make price ifforeign=1 | price100004、 in range 范围筛选sum price in 1/5注意 “1/5中”,斜杠不是除号,而是从1 到 5的意思,即 1, 2,3, 4, 5。如果要计算前 10台车中的国产车的平均价格,则可将范围和条件筛选联合使用。. su

4、m price in 1/10 if foreign=05、 weight 加权sum score weight=num其中, num 为每个成绩所对应的人数6、 , options 其他可选项例如,我们不仅要计算平均成绩,还想知道成绩的中值,方差,偏度和峰度等*/. sum score, detail. sum score, d /d 为 detail 的略写,两个命令完全等价. list price , nohead /不要表头Stata 数据类型转换1、字符型转化成数值型destring, replace/全部转换为数值型,replace 表示将原来的变量(值)更新destring da

5、te, replace ignore(“将字”符)型数据转换为数值型数据:去掉字符间的空格destring price percent , gen(price2 percent2 ) ignore($ “,% ”) 与 date 变量类似,变量price前面有美元符号,变量percent后有百分号,换为数值型时需要忽略这些非数值型字符2、数值型转化为字符型tostringyear day, replace/将年和日转化为字符型gen date1=month+ ” / ” +day+ ” / ”/month+year day 变为字符型后可以运算,将年月日构成一个新的日期变量gen date2=

6、date(date1,” mdy/*”date)()为日期函数, 它以1960 年 1月 1日为第 0 天,计算从那天起直到括号中指定的某天date1 一共过了多少天。”mdy”指定 date1 的排列顺序,这里是按照月日年的顺序来表示日期。*/数据显示格式/*format只控制数据的显示格式,并不改变内存中数据的大小。*/变量的格式为%14s ,表示右对齐,共14 个字符 ,%为固定用法(字符变量跟s,数值变量跟 g)ormat state %-14s / 该命令使 stata 的显示格式左对齐 ,14前面多了个负号formatpop %11.0gc /*pop的显示格式为%11.0g,后面

7、加上c,则每三位数间用逗号分开 ,c 为 comma 的意思 .*/formatmedage %8.1f /要求所有的 medage 都显示一位小数formatid %05.0f /对于编号,我们希望前面用零使得位数对齐,通过在前面补零,所有的 id都成了5 位数。导入 /导出其他格式数据1、数据导入insheet using3origin.csv/txt , clearinsheet using3origin.txt , double clear当数据中某个变量的位数特别长或者对导入数据的精度要求很高的时候,需要在该命令后面加double 选项。2、数据导出outsheet using my

8、result.asc, nonames如果不希望在第一行存储变量名, 则可以使用 nonames选项outsheet using myresult.asc, nonames replace 如果文件已经存在,则需要使用replace 选项数据合并1、 纵向合并use male, clear /打开记录男生信息的数据文件maleappend usingfemale /将记录女生信息的female 文件追加到当前数据集中save mydata1, replace2、 横向合并use economy,clear / 打开经济学成绩数据文件sort id / 按学号排序save economy, re

9、place / 重新保存一下use student,c clear /打开学生基本信息数据文件sort id /按学号排序merge id using economy /以学号为关联,将学生的信息和成绩一一对应对接tab _merge / 显示对接情况, 3 表示成功对接,1 和 2 表示未成功对接drop _merge/去掉标识对接是否成功变量_mergeStata 很多命令可单独使用,单独使用时,一般是对所有变量进行操作,等价于后面加上代表所有变量的 _all数据重整1、长宽转换宽:长:1)宽变长use mywide, clearreshape long math economy, i(

10、id name) j( year) /数据重整 ,宽变长 save mylong, replace2)长变宽reshape wide* 或者use mylong , clearreshape wide math economy, i(id name) j( yearr) / 数据重整 ,长变宽 save mywide2, replace2、多列数据转为少数几列有些数据集虽然有很多列,但实际上只有一个变量,利用stata 转化成一项数据。stack var1 -var6, into(x) clearx 是新生成变量的名称drop _stack变量stack记录观测值原来所在行数3、数据转置use

11、 math,clearxpose, clear变量运算:Stata 中,加( +)号同样可用于字符运算,当加号出现在两个字符之间时,两个字符将被连成一个字符。比如把 ”我爱 ” “STA”合并在一起,命令为:. scalar a= 我爱” + “ STATA”一些运算函数:comb(n,k) 从 n 中取 k 个的组合fill()自动填充数据int(x)取整log10(x)以 10 为底的对数mod(x,y)求余数round(x)四舍五入di round(3.345,.1) / 四舍五入到十分位,结果为3.3di round(3.345,.01) /四舍五入到百分位,结果为3.35di rou

12、nd(335.1,10) / 四舍五入到十位,结果为340sqrt(x) 开更号substr(s,n1,n2) 从 S 的第n1 个字符开始,截取n2 个字符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分离变量值clearinput str15 x10*123543*2112*42243532*3213443

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

14、*2, 100生成新的分组变量agegrp,当年龄 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)将文

15、本变量转化为数值变量di splay 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 / 保存数据,数据文件名为mydatasave mydata, replace如果同一文件夹下已经存有

16、mydata.dta,而你又要再次执行savemydata 时edit 编辑数据log 将输出结果存放入结果文件gen id=_n / 生成一个新变量 id,根据观测值排列顺序从上到下取值依次为 123 replace id=9842 in 3 第三个观测的 id 值改变compress / 压缩数据,使之在不损失任何信息的前提下占用空间最小 erase mydata1.dta 删除文件,一定要带上后缀名。报告数据describe 总体展示变量信息codebook 展示数据库中的每个变量情况(有多少缺失值,主要分位数,区间)list 列示内存中的数据count 报告共有多少观察值inspect 报告变量的分布table 数据列表tabulate联列表append 将有相同结果的数据纵向拼接(观察值拼接)merge 将两个数据文件横向拼接xpose 数据转置reshapegenerate 生成新的数据egen 生成新的数据rename 变量重命令drop 删除变量或观察值keep 保留变量或观察值sort 对观察值按从小到大顺序重新排列encode 数值型数据转换为字符型数据decode 字符型数据转换为数值型数据order变量顺序的重新排列by 分类操作

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1