实证分析 | STATA入门数据处理_stata銝要ogen_AccountingCoder的博客-程序员秘密

技术标签: python  

STATA十八讲1-7讲

1. 常用命令

*--- 需求帮助 ---*
help
search
*--- 进入某路径 ---*
cd
*--- 设定内存 ---*
set memory 20m
*--- 打开和保存数据 ---*
clear
ues
save
*--- 导入数据 ---*
input
edit
import
*--- 重整数据 ---*
append
merge
xpose
reshape
gen
egen
rename
drop
keep
sort
encode
decode
order
by

2.命令语句

  1. 命令语句的格式

[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options]

  1. 命令 command

只要不引起歧义,命令可以尽量只写前几个字母,如summarize可以写成sum

  1. 变量varlist

varlist表示一个变量,或者多个变量,多个变量之间用空格隔开

  1. 分类操作 by varlist

by varlist在执行时要求内存中的数据是按照by后面的变量排序的,当未排序正确时就会提示not sorted错误

sort foreign              //按国产车和进口车排序
by foreign: sum price weight
  1. 赋值及运算 = exp

该选项主要用于给新变量负值或替换原变量的值

gen nprice = price + 10
replace nprice = nprice - 10
  1. 条件表达式 if exp
*只查看价格超过1 万元的进口车(同时满足两个条件)
list make price if foreign==1 & price>10000
*查看价格超过1 万元或者进口车(两个条件任满足一个)
list make price if foreign==1 | price>10000
*分类型查看价格超过1 万元的汽车的品牌和价格
by foreign, sort: list make price if price>10000
  1. 范围筛选 in range

如果要计算较低的前10 台车的平均价格

sort price
sum price in 1/10
  1. 加权 weight
sum score [weight = num] //求分数的均值,num为不同分值的人数变量,以人数进行加权
  1. 其他可选项 , options

不同命令有不同可选项,实现不同的功能

3. 数据

  1. 打开数据
use xxx.dta, clear
  1. 数据类型
  • 数值型变量按精度区分:byte,int,long,float,double

  • 字符串变量,最多可以达244个字符,一般用str#表示字符的多少,例如str#20表示有20个字符

  • 日期型变量,在STATA中,1960年1月1日被认为是第0天

  • 缺失值

  1. 数据类型的转化

字符型变量转化成数值型变量:destring

destring date, replace   //把date转换成数值型

* 把字符型变量中含有非数值型字符时不能进行转换
destring date, replace ignore(" ")  //忽略空格,然后转换
destring price percent, gen(price2 percent2) ignore(“$ ,%”) //忽略$空格,%,并生成新变量

数值型转变量换为字符型变量:tostring

tostring year, replace
  1. 数据显示格式:format
  2. 在STATA中直接录入数据:input
clear
input id str10 name economy
1 john 40
2 chris 80
3 jack 90
end
save economy.dta, replace
  1. 标签数据

label给数据/变量/变量值增加标签说明

label data "上市公司基本信息表"    //给数据集设置标签
label var code "证券代码"         //给变量设置标签
label define statelb 1 "国有企业" 0 "非国有企业"
label values state statelb       //给变量值设置标签
  1. 删除数据
erase mydata.dta    //删除文件时一定要带上后缀名

4. 数据整理

  1. 连接数据

纵向合并数据

use male, clear
append using female.dta

横向合并数据

merge 1:1 code year using mydata.dta, nogen keep(1 3)  //1对1横向合并
  1. 数据重整

*--- 数据重整,宽变长 ---*
use mywide.dta, clear
reshape long math economy, i(id name) j(year)
save mylong.dta, replace

*--- 数据重整,长变宽 ---*
use mylong.dta, clear
reshape wide math economy, i(id name) j(year)
save mywide.dta, replace

将多列数据变一列:stack

stack var1-var6, into(x) clear
drop _stack
  1. 数据转置

行列互换

use math.dta, clear
xpose, clear

5. 函数与运算符

  1. 运算符

  1. 函数概览

  1. 数学函数
  • 三角函数、指数和对数函数
gen y1 = sin(x)
gen y2 = exp(x)
gen y3 = ln(x)
  • 取整和四舍五入
*--- 取整 ---*
int(x) //取整,不论后面的小数是什么,只取小数点前的数值

*--- 四舍五入 ---*
round(x) // 四舍五入取整
round(x, .01) //保留两位小数四舍五入
  • 求和及求均值gen和egen
gen y = sum(x)  //求列累积和
egen y = sum(x) //求列总和
egen y = rsum(x y z) //求x+y+z总和
egen y = rowmean(x y z) //求(x+y+z)/3
egen y = rowsd(x y z) //求x y z的方差
egen y = rowmim(x y z) //求x y z的最小值
egen y = rowmax(x y z) //求x y z的最大值
egen y = mean(x)      //求列均值
egen y = median(x)    //求列中位数
egen y = std(x)       //求变异系数,与方差不同
  1. 字符函数
gen year = substr(enddate,1,4)  //从enddate字符1开始取,取4个字符赋给year
gen y = strpos(s1, s2) != 0    //strpos(s1, s2)返回字符s2在s1中的位置,如果s1中找不到s2,则返回0,将该判断再赋给y
  1. 分类操作
by x, sort: gen z = y[1]  //按照x分组,生成一个新变量z=y的第一个观察值
bysort x: gen z = y[1]
bysort x(y): gen z = y[1] //按照x分组,分组后按照y排序,生成一个新变量z=y的第一个观察值

6. 程序

  1. 暂元

暂元是程序中的临时变量,分为暂元名和暂元内容两部分,类似于变量名和变量值

local v3 "price length weight"  // 将price length weight 这组字符赋给暂元名v3
list `v3' in 1/5

glocal v3 "price length weight"  // 将price length weight 这组字符赋给暂元名v3
list $v3 in 1/5

global与local的区别

global为全局暂元,local为局域暂元

7. 流程语句

  1. 循环语句:forvalues
forvalues i = 1/5 {
display `i'
}

forvalues i = 4 (-0.2) 0 {
display `i'
}
  1. 循环语句:foreach

按照变量循环

foreach v of varlist var1-var6 {
replace `v' = 0 if `v' == .
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_47172744/article/details/120046906

智能推荐

URL参数_燕缘的博客-程序员秘密

URL参数%sString(字符串),代表要搜索的关键词。必选参数。比如:https://www.google.com/search?q=%s&qQuery(查询),意为进行搜索,必选参数。比如:https://www.google.com/search**?q**=shuxue&hlInterface Language(界面语言),意为限制搜索的界面语言。en为英...

quality center 支持的平台_weixin_30900589的博客-程序员秘密

转载于:https://www.cnblogs.com/sea-stream/p/9860547.html

数论-同余与模算数_辣条不爱辣的博客-程序员秘密

你需要花多少时间来计算下面这道题目呢?123456789 * 987654321 = ()A. 121932631112635266         B.121932631112635267C.121932631112635268          D.121932631112635269既然是选择题,不必费力把答案完整的计算出来,4个选项的个位数都不相同,因此只需要计算是出答案的...

find_element——By 元素定位_没错就是我哎呀的博客-程序员秘密

• find_element(By.ID,”loginName”) • find_element(By.NAME,”SubjectName”) • find_element(By.CLASS_NAME,”u-btn-levred”) • find_element(By.TAG_NAME,”input”) • find_element(By.LINK_TEXT,”退出”)

C#编程基础(下)第五课:ADO.NET数据库开发(一)使用Connection对象将窗体程序和数据库连接_con.open_ba_wang_mao的博客-程序员秘密

知识点: 了解 ADO.NET 的功能和组成、会使用 Connection 对象连接到数据库、掌握基本的异常处理、会使用 Command 对象查询单个值。1、ADO.NET1.1 ADO.NET是什么? ADO.NET是一组用于和数据源进行交互的面向对象类库,通过这些类,我们可以访问和操作数据库。ADO.NET是数据库访问的方法和技术,主要用于完成C#应用程序访问数据库。 ...

<canvas>元素最后一篇制作简单动画_anys0520的博客-程序员秘密

具体步骤1.自定义一个函数,用于图形的移动或其他动作3.使用setImage()方法设置动画执行的间隔时间,反复执行自定义函数一大段代码来袭 1 &lt;!doctype html&gt; 2 &lt;html&gt; 3 &lt;head&gt; 4 &lt;meta charset="utf-8"&gt; 5 &lt;title&gt;无标题文档&...

随便推点

验证卡布列克运算_ataraxy_thinking的博客-程序员秘密

2019.04.09 验证卡布列克运算。任意一个四位数,只要它们各个位上的数字是不尽相同的,就有这样的规律: 1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数; 2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位); 3)求两个数的差,得到一个新的四位数(高位零保留)。 重复以上过程...

Cannot resolve plugin org.springframework.boot:spring-boot-maven-plugin:2.7.0(解决办法)_org.lionsoul报错_丸子CC的博客-程序员秘密

昨日还好端端的idea,今日打开,新建了一个spring boot项目,连主类都一直运行不起来!!!初步判断是仓库下载不了需要的类,于是删除缓存、重新下载,甚至把仓库都给删了。。。。于是报了如下错误:后来我仔细看了仓库,原来是setting有问题!!!解决办法:1、找到自己的maven目录下的setting.xml:2、右键以文本的形式打开,找到自己的本地仓库:3、在setting.xml中配置镜像:于:添加:&lt;mirror&gt; &lt;id&gt;alimaven

关于Repository模式_repository 包在domain_atvhghnhtb的博客-程序员秘密

Repository模式:网上说Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间。它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提供给领域层进行领域对象的访问。Repository是仓库管理员,领域层需要什么东西只需告诉仓库管理员,由仓库管理员把东西拿给它,并不需要知道东西实际放在哪。 使用该模式的最大好处就是将领域模型从客户代码和数据映

【Python】“组”的概念与定义_python组_瑞 新的博客-程序员秘密

文章目录理解组列表创建取子元素链接列表模拟球队元组创建、访问、链接注意特殊现象区别str、list、tuple共性序列、切片in len max排序因为asci码集合setlen in 特殊 -差集 &amp;交集 |并集定义空集合字典dict理解创建、访问子元素创建空字典![在这里插入图片描述](https://img-blog.csdnimg.cn/20200515222241722.png)理解组列表创建列表内多类型嵌套列表取子元素链接列表模拟球队元组创建、访问、链接

Linux 用户管理 3 之创建用户_linux创建三个资源用户账户_as900的博客-程序员秘密

创建用户在 Linux 操作系统普通用户没有创建用户的权限,你需要切换到 root 用户,或使用 sudo 切换到管理权限来创建用户。我们可以通过 useradd 来创建一个新用户:格式:useradd [options] LOGIN* LOGIN 为用户的登录名,并且 LOIN 和 options 的顺序可以颠倒useradd 的常用选项:-u 指定用户的 UID-o 不检查 UID,允许创建重复的 UID,与 -u 一起使用-g 指定用户的主组,后面可以跟组名,也可以跟

Vue中移动端适配禁止用户缩放屏幕_冷太阳a的博客-程序员秘密

控制移动端页面的缩放最近用vue和mint-ui框架开发了一个微信公众号,部署以后,进入页面,发现页面会随着手指的滑动而缩放,查阅资料后发现要在index.html中设置一下。以下是解决方法:vue生成的index.html页面中,meta标签是这样子的:这里只要把meta标签改成以下内容,就可以控制页面的缩放具体属性值分析:    width=device-width 使用设备的宽度来解析    initial-scale=1.0 页面初始倍数为1倍    m