stata常用命令汇总——自用备查_stata命令汇总_啊金曼的博客-程序员宝宝

技术标签: 经验分享  学术研究  

‘将字符型转为数值,例如将行业分类变为数字编码、省份变为数值:

encode var, gen(var1)

有时,直接编码不能满足需求,例如要根据行业分类第一字母分类,C类行业根据前两个字符转变为数值,此时的代码为:

gen Ind = Indcd
replace Ind = substr(Indcd,1,1) if substr(Indcd,1,1)!="C"
replace Ind = substr(Indcd,1,2) if substr(Indcd,1,1)=="C"
encode Ind,gen(industry)

截取字符串的部分,例如经常建立年份,需要截取日期的前四个字符:

gen var1 = substr(var,1,4)

将所有空值全部替换成0值:

一个个变量replace 很麻烦,可以用以下简便方法

mvencode _all, mv(0)

如果使用上述命令,仍有一部分缺失值并未替换成0,可用下述命令强制转换

mvencode _all, mv(0) override

把字符串的日期格式转换为date格式

首先,CSMAR上下载的很多默认是“2020-05-21”这种格式,显然是date()函数不能识别的,首先要转换成“month\day\year”的格式

gen Year = substr(TradingDate ,1,4)

gen month = substr(TradingDate,6,7 )

replace month = substr(month,1,2 )
gen day = substr(TradingDate ,9,10)

gen Date = "month" + "/" + day + "/" + Year

gen date_back = date(Date,"MDY")

format date_back %td

导入excel,通常前两行是变量名称和单位,需要删掉:

drop in 1/2

将str格式转变为int或long格式:

destring var1 var2,replace

合并两个数据集merge:

merge 1:1 Stkcd year using "目录路径\数据.dta"

不生成_merge变量,并且保留_merge

merge 1:1 Stkcd year using "目录路径\数据.dta",keep(1 3) nogen

判断字符串有没有包含特定字符,例如筛选出年报,则日期要包含‘12-31’:

keep if strmatch(var, "*12-31*")

把类型转换成int:

 recast int Year

排序(sort,gsort):

sort命令:在STATA中对观测值(行)根据特定变量进行升序排序。

gsort命令:在STATA中对观测值(行)进行升序或降序排列(多变量时可以是升序和降序的组合)。

sort完整代码:

sort varlist 

gsort完整代码:

gsort [+|-] varname [[+|-] varname ...] [, g(newvar) m]
  • [+|-]:[+]为升序,[-]为降序,默认升序;
  • varname:排序依据的变量;
  • [generate(newvar)]:生成表示排序顺序的新变量(1, 2, 3, ...)
  • [mfirst]:missing first,将缺失值排在最前面,默认为排在最后

根据某一分隔符进行分割成多个变量:

split date,parse(", "" ") gen(ndate) notrim  //根据,和空格进行分割

OLS或者固定效应模型后生成残差

predict e,residual

缩尾、截尾(Winsor2)

 剔除前20%的数据(需要先排序)

egen p20 = pctile(invest), p(20)
egen p80 = pctile(invest), p(80)

N等分(来源:Stata将数值型变量N等分的几种方式 (baidu.com)

举例,已知各地GDP,想按照GDP将城市分为好中差三类。

转化为Stata任务:已经有变量GDP,根据GDP的值从小到大分三类生成变量type

Stata有三种实现方式,略有差异

1. 命令 egen 结合函数cut

egen type = cut(GDP), group(3)

N等分就选择group(N)

得到type取值为0、1、2

2. 命令generate 结合命令sort与函数group

sort GDP

generate type = group(3)

N等分就选择group(N),要先sort再生成,如果想从大到小排列则用 gsort -GDP

得到type取值为1、2、3

3. 外部命令astile

astile type = GDP, nq(3)

N等分就选择nq(N)

得到type的取值为1、2、3

注意:astile命令需要另外下载,ssc install astile, replace

有条件的计数:

count if price > 500

bys industry year: egen x = count(var) if var>= 0

删除重复值

duplicates drop Stkcd Year,force

长面板变短面板——reshape

有时省份等宏观层面的数据往往是以地区为行、年份为列,而经常的情况是我们需要面板数据:

参考链接:如何把国家统计局地区分省年度数据快速整理成省级面板数据 - 简书

互助问答第22期:在stata中将截面数据转为面板数据 - 知乎 (zhihu.com)

首先了解stata里面的reshape命令:

运用reshape语句时,重点就是对long和wide型数据中i和j的认识。回到图1,找到i,j,stub三要素。①Wide form中的id就是i;②inc80、inc81、inc82随时间变化的变量就是stub&j;③sex与id保持对应,不随j(时间)变化,不需要在代码中反映。

于是可以用 reshape long的语句将截面数据变为面板数据,wide form中i(id)变为long form中的i(id),sex与i自动保持一致,stub&j拆分为stub(inc)和j(year)。

reshape long inc, i(id) j(year)

*local i =  A[2]
local i =  substr(A[2],10,.)  //提取数据指标:地区生产总值。
dis  "`i'"
keep in 5/35 //保存5-35行数据
renvars B-U \ a2018 a2017 a2016 a2015 a2014 a2013 a2012 a2011 
a2010 a2009 a2008  a2007 a2006 a2005 a2004 a2003 a2002 
a2001 a2000 a1999  //变量重命名
gen id = _n
reshape long a, i(id) j(year)   //把宽数据转为长数据
label variable a "`i'"   //添加标签“地区生产总值”
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43726651/article/details/123873746

智能推荐

Hadoop YARN配置参数剖析_<name>yarn.nodemanager.log.retain-seconds</name>干嘛_该昵称已经被占用的博客-程序员宝宝

本文部分转自 Hadoop YARN配置参数剖析(1)—RM与NM相关参数 本文部分转自 Hadoop YARN中内存的设置一 ResourceManager 相关配置参数1 通信配置参数2 调度器配置参数3 内存和 CPU 配置参数二 NodeManager 相关配置参数1 内存与 CPU 配置参数1 日志配置参数3 运行配置参数三 Hadoop YARN 中

php版临时邮箱,Forsaken Mail创建临时邮箱系统| 手把手教程_姗胖胖Joyce的博客-程序员宝宝

场景需求不需要长时间使用的邮箱需要大量创建临时邮箱使用匿名邮箱环境说明**` `Forsaken Mail`是一个临时邮箱系统,可以供任何人接受邮件,即收即毁,支持自定义邮箱地址前缀,这里就说下`Docker`和`NPM`两种安装教程,任选一种即可,有兴趣或者有需求的可以玩玩。Github地址:https://github.com/denghongcai/forsaken-mail开启25 跟30...

【Arduino基础教程】Moisture Sensor土壤湿度传感器_静数秋天的博客-程序员宝宝

Moisture Sensor土壤湿度传感器Moisture Sensor土壤湿度传感器可读取在其周围的土壤存在的水分的量。因此,它可以用于监视你的花园土壤湿度并提醒你适时浇花。模块特征供电: 3.3v 或者 5v输出信号: 0~4.2v额定电流: 35mA输出范围及对应的土壤湿度0 ~300 : 干燥300~700 ...

DZ先生怪谈国标之215 and 216(即业务分组和虚拟组织)_DZ先生的博客-程序员宝宝

自述:我记得在我还不懂什么是国标的时候,我只是知道那是一串数字,有标识性的,后来因为工作需要对国标开始有了深入的了解。但是在这个业务分组和虚拟组织,即常说的215 and 216这块我还不是很熟悉,初知这块还是因为和X康对接,X康得貌貌先生曾为我阐述过这块,只是当时觉得还是有问题,理解不了,所以DZ我又开始翻开国标进行了一番详细研究。我现在算是了解了,为了让更多的安防工程师了解这块,现将详细解...

随便推点

ESP32设备驱动-土壤湿度传感器驱动_esp32土壤湿度传感器_视觉&物联智能的博客-程序员宝宝

土壤湿度传感器由两个探头组成,用于测量水的体积含量。 两个探头让电流通过土壤,然后得到电阻值来测量水分值。当有更多的水时,土壤会传导更多的电,这意味着电阻会更小。 因此,水分含量会更高。 干燥的土壤导电性差,所以当水少时,土壤的导电性就会减少,这意味着电阻会增加。 因此,水分含量会更低。

Unity练习 开发日志(一)_unity 练练看_Ekennis的博客-程序员宝宝

Unity2D从零开始的开发历程……慢慢积累.

树莓派python编程读取电压_在树莓派上读取土壤湿度传感器读数-python代码实现及常见问题(全面简单易懂)..._weixin_39606799的博客-程序员宝宝

本篇文章简单介绍了如何在树莓派上配置土壤湿度传感器以读取土壤湿度及代码实现。主要包含有以下4个模块:一、土壤湿度传感器常见类型及介绍二、实验所需设备三、设备连线方式与代码实现四、常见问题及注意事项需要哪个模块的内容直接跳转去看即可~一、土壤湿度传感器常见类型及介绍土壤湿度传感器,又名土壤水分传感器、土壤墒情传感器、土壤含水量传感器等。顾名思义,主要用来测量土壤相对含水量,做土壤墒情监测。在智能农业...

Java基础(一)——Java概述、dos命令、JDK、JRE、JVM、跨平台性、编译解释等_kww_的博客-程序员宝宝

目录第一章 Java基础语法1.1Java语言概述1.2常用dos命令1.3java环境配置简述1.4JDK 与JRE1.5跨平台特性(在任意os下都可以运行)第二章:案例介绍2.1 java程序介绍2.1.1 用记事本编写java源文件第三章 注释、关键字与标识符3.1注释3.2关键字3.3标识符第四章 数据4.1程序4.2 数据类型4.3常量第一章 Java基础语法1.1Java语言概述java可用于开发互联网...

hadoop生态圈_borderhz的博客-程序员宝宝

大数据Hadoop生态圈-组件介绍Hadoop是目前应用最为广泛的分布式大数据处理框架,其具备可靠、高效、可伸缩等特点。Hadoop的核心组件是HDFS、MapReduce。随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈,目前生态圈结构大致如图所示:根据服务对象和层次分为:数据来源层、数据传输层、数据存储层、资源管理层、数据计算层、任务调度层、业务模型层。接下来对Hadoop生态圈中出现的相关组件做一个简要介绍。1、HDFS(分布式文件系统)HDFS是整个hadoop体系

SpringDataJpa 使用save创建表出错:java.sql.SQLSyntaxErrorException: Table doesn‘t exist_这个饕字怎么读的博客-程序员宝宝

问题描述在使用 SpringDataJpa 时遇到一个错误在Jpa配置中配置了 hibernate.hbm2ddl.auto&lt;property name="jpaProperties"&gt; &lt;props&gt; &lt;prop key="hibernate.hbm2ddl.auto"&gt;create&lt;/prop&gt; &lt;/props&gt;&lt;/property&gt;测试使用如下:@Test @Transaction

推荐文章

热门文章

相关标签