收藏 分享(赏)

Stata命令整理.docx

上传人:weiwoduzun 文档编号:5727726 上传时间:2019-03-15 格式:DOCX 页数:6 大小:94.57KB
下载 相关 举报
Stata命令整理.docx_第1页
第1页 / 共6页
Stata命令整理.docx_第2页
第2页 / 共6页
Stata命令整理.docx_第3页
第3页 / 共6页
Stata命令整理.docx_第4页
第4页 / 共6页
Stata命令整理.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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

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

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

4、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 date, replace ignor

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

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

7、,则每三位数间用逗号分开,c 为 comma 的意思.*/format medage %8.1f /要求所有的 medage 都显示一位小数format id %05.0f /对于编号,我们希望前面用零使得位数对齐,通过在前面补零,所有的 id 都成了 5 位数。导入/导出其他格式数据1、数据导入insheet using 3origin.csv/txt, clearinsheet using 3origin.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 using female /将记录女生信息的 female 文件追加到当前数据集中save mydata1, replace2、 横向合并use economy,clear /打开经济学成绩数据文件sort id /按学号排序save economy,

9、 replace /重新保存一下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,

10、i(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) clear x 是新生成变量的名称drop _stack 变量 stack 记录观测值原来所在行数3、数据转置use ma

11、th,clearxpose, clear变量运算:Stata 中,加( +)号同样可用于字符运算,当加号出现在两个字符之间时,两个字符将被连成一个字符。比如把”我爱” “STATA”合并在一起,命令为:. 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 ro

12、und(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 x“10*123“543*21“12*422“43532*32134

13、“4349*1“endgen 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, 2, , 100recode age (min/30=1) (30/60=2) (60/max=3

14、),gen(agegrp) /*生成新的分组变量 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

15、, gen(country1) 将文本变量转化为数值变量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 /保存数据,数据文件名为 mydatasave

16、mydata, replace 如果同一文件夹下已经存有 mydata.dta,而你又要再次执行 save mydata 时edit 编辑数据log 将输出结果存放入结果文件gen id=_n /生成一个新变量 id,根据观测值排列顺序从上到下取值依次为 123replace 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 分类操作

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报