stata常用命令(2012-07-2917:22:25)转载▼标签:杂谈分类:statasave命令FileSaveAs例1.表1.为某一降压药临床试验数据,试从键盘输入Stata,并保存为Stata格式文件。STATA数据库的维护排序SORT变量名1变量名2……变量更名rename原变量名新变量名STATA数据库的维护删除变量或记录dropx1x2/*删除变量x1和x2dropx1-x5/*删除数据库中介于x1和x5间的所有变量(包括x1和x5)dropifx0/*删去x10的所有记录dropin10/12/*删去第10~12个记录dropifx==./*删去x为缺失值的所有记录dropifx==.|y==./*删去x或y之一为缺失值的所有记录dropifx==.&y==./*删去x和y同时为缺失值的所有记录drop_all/*删掉数据库中所有变量和数据STATA的变量赋值用generate产生新变量generate新变量=表达式generatebh=_n/*将数据库的内部编号赋给变量bh。generategroup=int((_n-1)/5)+1/*按当前数据库的顺序,依次产生5个1,5个2,5个3……。直到数据库结束。generateblock=mod(_n,6)/*按当前数据库的顺序,依次产生1,2,3,4,5,0。generatey=log(x)ifx0/*产生新变量y,其值为所有x0的对数值log(x),当x=0时,用缺失值代替。egen产生新变量setobs12egena=seq()/*产生1到N的自然数egenb=seq(),b(3)/*产生一个序列,每个元素重复#次egenc=seq(),to(4)/*产生多个序列,每个序列从1到#egend=seq(),f(4)t(6)/*产生多个序列,每个序列从#1到#2encode字符变量名,gen(新数值变量名)作用:将字符型变量转化为数值变量。STATA数据库的维护保留变量或记录keepin10/20/*保留第10~20个记录,其余记录删除keepx1-x5/*保留数据库中介于x1和x5间的所有变量(包括x1和x5),其余变量删除keepifx0/*保留x0的所有记录,其余记录删除STATA数据库的维护替换已存在的变量值replace变量=表达式replacebolck=6ifblock==0/*将block=0的数全部替换为6。replacez=.ifz0/*将所有小于0的z值用缺失值代替。replaceage=25in17/*将第17条记录中的变量age替换为25。forvarx*:replaceX=0ifX==./*将所有第一个字母为x的变量替换为0,如果该变量的值为缺失值纵向连接数据库Ex3-3.dta:x0x11.355024502.200024003.300018004.395032005.38003250useE:\教学\上机\ex3-2.dta,clearlx0x1g1.2450145022.2100240023.2300380024.159042002appendusingE:\教学\上机\ex3-3.dtalx0x1g1.2450145022.2100240023.2300380024.1590420025.35502450.6.20002400.7.30001800.8.39503200.9.38003250.横向联接数据库Ex3-5.dta:bhy0y1x01.13579.222.34547.483.45234.664.66628.09命令.drop_all.useE:\教学\MPH上机\ex3-5.dta.sortbh.saveE:\教学\MPH上机\ex3-5.dta,replacefileE:\教学\MPH上机\ex3-5.dtasaved.useE:\教学\MPH上机\ex3-4.dta.sortbh.mergebhusingE:\教学\MPH上机\ex3-5.dta结果bhx0x1y0y1_merge1.112243579.232.21526..13.316494547.434.418575234.635.52068..16.69.66282列数据接龙Stack变量名,into(新变量名)|group(#)[clearwide]示例统计描述及区间估计定量资料的一般描述均数、标准差、百分位数、中位数summarize[变量名][,detail]统计描述及区间估计百分位数centile[变量名][,centile(#[#...])ccinormalmeansdlevel(#)]统计描述及区间估计定性资料的一般描述按照分类变量给出频数和构成比tabulate变量名例2.有三组(group)患者,男女(sex)若干人,sex=1表示男性,sex=0表示女性。测得其血红蛋白浓度(x1,%)和红细胞计数(x2,万/mm3),资料存入c:\mydata\ex2.dta。试对其进行描述。见ex5-2.usec:\mydata\ex2.tabgroup.tabsex.tabgroup,sum(x1).tabgroup,sum(x2)统计描述及区间估计可信区间的估计ci变量[,level(#)binomialpoissonexposure(观察数变量)by(分组变量)total]cii观察数均数标准差[,level(#)]level(#)/*指定可信度,缺失时为95(%)by(分组变量)/*指定按分组变量分别估计均数的可信区间total/*指定除按分组变量估计可信区间外,还对整个数据估计,仅用于指定了by(分组变量)时.usec:\mydata\ex2.sortgroup/*在用by(分组变量)前,必须对分组变量排序.cix1x2,by(group)STATA的作图作图命令GRAPHgraph[变量名][,图形类型通用选择项特殊选择项]图形类型histogram/*直方图,为缺省值。oneway/*一维散点图twoway/*二维散点图、线图matrix/*二维散点图阵bar/*条图、百分条图pie/*圆(饼)图box/*箱式图star/*星形图STATA的作图作图命令GRAPH常用选项bin(#)/*将数据分几组,缺省为5。freq/*指定纵轴用频数表示,否则为频率。normal/*给直方图加上相应正态曲线。xlab/ylab/[(#,……,#)]/*指定坐标轴的界点。b2/l2[(“字符串”)]/*指定坐标轴的副标题。STATA的作图如何利用STATA绘制频数分布图?例130名14岁女孩身高资料。grax,bin(10)freqnormalxlab(124,128,132,136,140,144,148,152,156,160,164)ylab(5,10,15,20,25,30,35,40)数值变量资料的描述均数、几何均数、中位数、百分位数极差、四分位数间距、方差、标准差变异系数对称分布均数±标准差偏态分布中位数±四分位数间距数值变量资料的描述means[变量名]summarize[变量名][,detail]centile[变量名][,centile(#)]其他选项detail/*详细描述,缺失时为简单描述centile(#)/*指定需要计算的百分位数某市1997年12岁男童120人的身高(cm)资料如下sumxsumx,dsumxifx140sumxifx140,dcentilexcentilex,centile(25,50,75)例有五份血清的抗体效价为1:10,1:20,1:40,1:80,1:160,描述其抗体滴度的平均水平。meansxSTATA的作图作图命令graph简写gragra[变量名][,图形类型通用选择项特殊选择项]图形类型histogram/*直方图oneway/*一维散点图twoway/*二维散点图、线图matrix/*二维散点图阵bar/*条图、百分条图pie/*圆(饼)图box/*箱式图star/*星形图直方图数值变量资料的统计分析样本均数与总体均数比较的t检验配对设计t检验成组设计t检验方差齐性检验样本均数与总体均数比较的t检验ttest变量名=#valttesti#obs#mean#sd#val例问题:统计量与参数不同的两种可能其一:抽样误差(偶然的、随机的、较小的)其二:本质上的差别(必然的、大于随机误差)例样本:某医生随机抽查10名某病患者的血红蛋白,求得其均数为12.59(g/dl),标准差为1.632619(g/dl)。问题:该病患者的平均Hb含量是否与正常人的平均Hb含量相同(正常人的平均Hb含量为14.02(g/dl)。STATA命令ttest变量名=#valttestx=14.02STATA结果ttestx=14.02One-samplettest----------------------------------------------------------------------------Variable|ObsMeanStd.Err.Std.Dev.[95%Conf.Interval]---------+------------------------------------------------------------------x|1012.59.51627941.63261911.4220913.75791----------------------------------------------------------------------------Degreesoffreedom:9Ho:mean(x)=14.02Ha:mean14.02Ha:mean~=14.02Ha:mean14.02t=-2.7698t=-2.7698t=-2.7698Pt=0.0109P|t|=0.0218Pt=0.9891STATA命令ttesti#obs#mean#sd#valttesti1012.591.63261914.02配对设计t检验ttest变量1=变量2STATA命令ttestx1=x2STATA结果ttestx1=x2Pairedttest-------------------------------------------------------------------Variable|ObsMeanStd.Err.Std.Dev.[95%Conf.Interval]---------+---------------------------------------------------------x1|1012.59.51627941.63261911.4220913.75791x2|1013.27.34158131.08017512.4972914.04271---------+---------------------------------------------------------diff|10-.6799999.52042721.645735-1.857288.4972881-------------------------------------------------------------------Ho:mean(x1-x2)=mean(diff)=0Ha:mean(diff)0Ha:mean(diff)~=0Ha:mean(diff)0t=-1.3066t=-1.3066t=-1.3066Pt=0.1119P|t|=0.2237Pt=0.8881成组设计t检验ttest变量1=变量2,unpaired[unequal]ttest变量,by(分组变量)[unequal]ttesti#obs1#mean1#sd1#obs2#mean2#sd2[,unequal]unpaired表示非配对的,如不选就作配对t检验unequal表示假设两组方差不齐,如不选表示假设两组方差达到齐性例(成组设计