STATA常用指令

您所在的位置:网站首页 stata中ln命令 STATA常用指令

STATA常用指令

2023-01-06 14:45| 来源: 网络整理| 查看: 265

初学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