STATA常用指令 |
您所在的位置:网站首页 › stata中ln命令 › STATA常用指令 |
初学Stata。 如有错误,请指正。谢谢! 以下内容全部复制到do-file中查看更加舒服方便。 *-----------------------------------* * STATA常用指令 * *-----------------------------------* * by T-keyyyyy * *-----------------------------------* ***********************指令集合(请先运行以下指令生成初始数据)************************
clear input a b c str30 d str30 e 组中值示例 频数 str30 分割示例 年 月 日 具体日期 样本分数 所处班级 样本分数2 所处班级2 1 11 30 1 1 145 4 1年 2020 1 1 21915 11 1 13.3 1 2 13 30 1 2 155 9 1年2月 2020 1 1 21915 11 1 20.8 1 3 15 30 2 3 165 16 1年2月3日 2020 1 1 21915 9 1 17.9 1 4 17 30 2 4 175 27 1元2角3分 2020 1 1 21915 12 1 13.8 1 5 19 30 5 5 185 20 四元五角6分 2020 1 1 21915 10 1 18.2 2 6 21 30 6 6 195 17 十一元九角八分 2020 1 1 21915 13 1 15.3 2 7 23 30 7 7 205 10 . 2020 1 1 21915 7 2 15.1 2 8 25 30 8 8 215 8 . 2020 1 1 21915 9 2 12.6 2 9 27 30 9 9 225 4 . 2020 1 1 21915 8 2 8.9 3 10 29 30 10 10 235 5 . 2020 1 1 21915 12 2 14.3 3 . 31 30 . 11 . . . 2020 1 1 21915 8 2 9.8 3 . 33 30 . . . . . 2020 1 1 21915 10 2 17.5 3 end save "C:\……\初始数据.dta", replace //具体路径请自行补充
*****************************首先需要注意的点**********************************
*表示逻辑用两个==号 表示计算用一个=号
*关于fweight:用于频数加权,频数权数必须是整数。以初始数据为例,当 summarize 组中值示例 或 hist 组中值示例 后添加[fweight=频数],那么出来的数据即为“组中值示例”加权频数后的数据。例如,summarize 组中值示例,detail ,观测量为10个数,平均数为(145+155+165+175+185+195+205+215+225+235)/10=190;而summarize 组中值示例[fweight=频数],detail ,观测量为120个数,平均数为(145*4+155*9+165*16+175*27+185*20+195*17+205*10+215*8+225*4+235*5)/120=185
********************************相关扩展*************************************
*Stata中的权重问题:https://bbs.pinggu.org/thread-243849-1-1.html
*Stata中的变量:http://www.360doc.com/content/16/1001/18/36455570_595137530.shtml
*egen和gen的区别:https://bbs.pinggu.org/thread-2396061-1-1.html
*************************************指令集合*******************************************
**************************************目录*********************************************
* *、//号 * use * sysuse * clear * cd * pwd * gen * 附:如何生成具体日期 * egen * input * label * set * sample * 如何抽样 * keep * replace * format * recode * collapse * disp * tabstat * split * forvalues * summarize * hist * line * bys * post系统 * ttest * prtest * sdtest * sktest * 单因素方差分析(F检验)(oneway) * help * save * describe * list * tab * quietly * preserve与restore * sysuse * append
*************************************************************************************
*------------------------------------------------------------------------------*
* // //加了*、//号 就不会执行 只是会显示出来 可用作添加注释
*------------------------------------------------------------------------------*
use "C:\……\a.dta",clear //使用特定路径的文件(此处隐去具体路径) clear: 如果stata本身没有打开任何数据,可以不带,意思属是清除已经被占用的内存
*------------------------------------------------------------------------------*
sysuse auto //使用stata自带的数据集
*------------------------------------------------------------------------------*
clear //清除内存
*------------------------------------------------------------------------------*
cd "C:\……" // 切换路径(此处隐去具体路径)
*------------------------------------------------------------------------------*
pwd // 查看当前的工作路径(同时也可以看主窗口左下角)
*------------------------------------------------------------------------------*
gen f=1 //生成新的列f,使f列为1,且f的数值类型默认为浮点型(float)
gen int f=1 //生成新的列f,使f列为1,且f的数值类型为整型 【即便你输入f=1.111,最后出来的数字依然是整型(1)】 “int”(整型)可更改为 “byte”(字节型)“long”(长整型)“float”(浮点型)“double”(双精度型) 输入“byte”(字节型)“int”(整型)“long”(长整型),最后出来的数据都是整数 输入“float”(浮点型)“double”(双精度型),最后出来的数据带小数点 (关于数值类型的更多解释,可看开头处的相关扩展)
gen str f="一" //生成新的列f,使f列为1,且f为字符串数据
gen lna=ln(a) //生成新的列lna 使lna等于a的对数(ln) lna是数值变量 “lna”是名字,可以更改
gen f=a/b //生成新的列f,使f列为a除以b
gen f=sum(a) //生成新的列f,使f为a的累计相加 即1f=1a=1 2f=1a+2a=3 3f=1a+2a+3a=6……以此类推
gen f=a+b+c //生成新的列f,使f为a列加b列加c列 即1f=1a+1b+1c=42 2f=2a+2b+2c=45 3f=3a+3b+3c=48……以此类推
gen f=int(1.555) //生成新的列f,使f列为1.555的整数部分(1),且f的数值类型默认为浮点型(float) 可以将“int”改为“float”,此时f列则为1.555,f同样为浮点型,但即使不输入float(),生成的f列仍为1.555且默认为浮点型,因此没必要 注意:只有int和float有效,如果此处的“int”或“float”改为了其它东西,则会显示错误
gen f=1 if a==1 | d=="" //如果a=1或d=="(空白)",则生成新的列f,使f列为1,且f的数值类型默认为浮点型(float)
gen f=a==1 | a==2 | d=="" //生成新的列f,如果a为1或a为2或d为""(空白),则f为1;否则f为0 *附 gen f=a>5 等同于gen f=1 if a>5 replace x=0 if a0.5 //将样本随机分成两份 prtest foreign,by(x) //对随机分成的两份数据的国产车比例进行检验 两组样本比例的t检验
*1、配对比例t检验 *prtest 变量1==变量2
*2、只知道样本量、比例1、比例2,没有原数据时: prtesti 10 0.1 0.2 //从左到右依次为变量1样本量 比例1 比例2
*3、只知道样本量和频数,与某个比例比较,没有原始数据时: prtesti 30 4 0.7,count
*4、已知两独立样本的样本量、比例,没有原始数据,进行比例检验: prtesti 30 0.4 45 0.67 //从左到右依次为变量1样本量 变量1比例 变量2样本量 变量2比例
*------------------------------------------------------------------------------*
*两样本方差齐性检验(sdtest)
clear sysuse auto
*有样本情况下的方差齐性检验
*1、单变量方差的检验 sdtest mpg==5 //一个等于号或两个等于号都可以
*2、两组样本比例的t检验 sdtest mpg,by(foreign)
*3、配对比例t检验 sdtest varname1==varname2 //一个等于号或两个等于号都可以
*无样本情况下的方差齐性检验
*4、只知道样本量、方差1和比较的方差2,没有原数据时 sdtesti 75 6.5 6
*5、只知道两个样本的样本量和方差,相互比较,没有原始数据时: sdtesti 75 6.5 65 7.5
*------------------------------------------------------------------------------*
*正态性的偏度和峰度检验(sktest) clear input var1 var2 1 9.8 1 12.7 1 12.3 1 12.5 1 13 1 9.5 1 12.6 1 8.9 1 12.3 1 14.3 1 10.7 2 14.6 2 17.5 2 15.1 2 17 2 13.4 2 15.3 2 13.7 2 18.2 2 13.8 2 12.6 2 14.5 3 23.3 3 20.8 3 20.6 3 23.5 3 17.9 3 21.9 3 22.1 3 22 3 19.5 3 18.4 3 21.5 end
sktest var2 if var1==1 //将var1为1的数据中的var2进行正态性的偏度和峰度检验 sktest var2 if var1==2 //将var1为2的数据中的var2进行正态性的偏度和峰度检验 sktest var2 if var1==3 //将var1为3的数据中的var2进行正态性的偏度和峰度检验
*------------------------------------------------------------------------------*
*单因素方差分析(F检验) clear input var1 var2 1 9.8 1 12.7 1 12.3 1 12.5 1 13 1 9.5 1 12.6 1 8.9 1 12.3 1 14.3 1 10.7 2 14.6 2 17.5 2 15.1 2 17 2 13.4 2 15.3 2 13.7 2 18.2 2 13.8 2 12.6 2 14.5 3 23.3 3 20.8 3 20.6 3 23.5 3 17.9 3 21.9 3 22.1 3 22 3 19.5 3 18.4 3 21.5 end
*oneway 效应指标变量 分组变量,t b oneway var2 var1,t b //输入t会显示var2的summary 输入b会出现Comparison of var2 by var1,意思是var2数据根据var1中的数据分组后,每组的两两比较;例如,在横轴为2,纵轴为1这一格中,3.37273表示的是第2组的样本均数-第1组的样本均数,0.000表示的是零假设H0(Ho:mean(1)- mean(2)=0)的p值
*------------------------------------------------------------------------------*
help //查看帮助 可在help添加想要查的东西 如help gen、help format等
*------------------------------------------------------------------------------*
save "C:\……\初始数据.dta", replace //保存文件至特定路径(此处隐去具体路径),replace表示如果存在同样名字的文件,则替换之
*------------------------------------------------------------------------------*
describe // 查看对当前内存中数据集的简要描述信息
*------------------------------------------------------------------------------*
list in 1/10 // 查看此数据集的前10行
*------------------------------------------------------------------------------*
tab 所处班级 //在主界面中显示表格,表格内容为所处班级这一列的分类汇总(例如1班和2班分别有几个观测量,占这一列的总比多少等。)
tab 所处班级, nol //在主界面中显示表格,表格内容为所处班级这一列的分类汇总(例如1班和2班分别有几个观测量,占这一列的总比多少等。),且显示出来最左边的那一列的是数字而非标签
*------------------------------------------------------------------------------*
quietly //加在指令前,加了后结果不会显示在屏幕上,比如不会显示“(9 observations deleted)”之类的
*------------------------------------------------------------------------------*
preserve //保存 restore //恢复 *两者共用可起到类似于撤销的作用,但必须要提前preserve才能restore,且只会恢复到preserve时候的状态。另外,restore只能恢复一次,restore后必须再次preserve才能再次restore
*------------------------------------------------------------------------------*
sysuse auto,clear //sysuse :使用、打开 auto :文件名,是stata自带的,经常专可以用这个文件来模拟命令效果 clear: 如果stata本身没有打开任何数据,可以不带,意思是清除已经被占用的内存
*------------------------------------------------------------------------------*
append using "C:\……\(可以取任意名字).dta" //将特定路径的文件合并到当前文件(此处隐去具体路径) 如果变量名相同,会合并到同一变量名(因此同一变量名的数值类型必须相同) 但不管变量名是否相同,合并过来的数据都会在新增的观测量那里,比如:原本的数据有12个观测量,分别为1-12;而要合并过来的数据有6个观测量,分别为1-6;那么,当这份数据合并过来后,这份新数据的观测量在13-18,总共18个观测量
*------------------------------------------------------------------------------*
************************************************************************************* |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |