stata变量引用

news2024/11/29 12:29:37

stata变量引用–潘登同学的stata笔记

文章目录

    • stata变量引用--潘登同学的stata笔记
  • 变量生成
    • gen命令
    • 通配符:*, ?, -
    • 因子变量
      • 时间序列
  • 变量命名、前缀与标签
    • 变量命名、添加前缀
    • 通配符与批量重命名
    • 变量标签
    • 数字-文字对应表
    • CSMAR数据处理
  • 查看、查找变量
  • 单值、暂元
    • 单值
    • 暂元
    • 利用暂元写循环语句

变量生成

gen命令

sysuse nlsw88, clear
gen lnwage = ln(wage)
gen yes_white = (race==1)  // [=exp]
tabstat lnwage hours married age, by(yes_white) s(mean) f(%3.2f) 

在这里插入图片描述

通配符:*, ?, -

sysuse nlsw88, clear
sum age race married never_married grade
sum age-grade    // 顺序出现的变量,列出头尾两个变量即可
sum s*           // "*" 是孙悟空,可以表示`任何'长度的字母或数字
sum *arr*        // 可以用在任何位置
sum ?a?e         // "?" 是猪八戒,只能替代`一个'长度的字母或数字 

在这里插入图片描述

因子变量

  • i: 表示将变量转换为虚拟变量
  • c: 表示变量为连续型变量(只有加上ci才能参与后续交乘项平方项的运算)
  • #: 相当于乘号
  • ##: 能同时具有更低阶的交乘项
sysuse nlsw88, clear
tab race                                 // 类别变量
reg wage tenure hours i.race i.industry  // 种族和行业虚拟变量
reg wage tenure hours age c.age#c.age    // 平方项        #
reg wage tenure hours     c.age##c.age   // 等价命令,简写 ##
reg wage tenure hours i.marr i.marr#c.hours // 交乘项
reg wage tenure     c.age##c.age##c.hours   // 能同时有5项

在这里插入图片描述

时间序列

sysuse sp500, clear
tsset date // 对日期排序
gen t = _n
tsset t
gen lnP = ln(close)
gen return = D.lnP       //收益率(D.表示一阶差分)
gen Lreturn  = L.return  //前一天的收益率(L.表示一阶滞后项)
gen L2return = L2.return //前两天的收益率

reg return L.return L2.return
reg return L(1/3).return F(1/2).return // F表示滞后项的反义词 //回归时不必产生这些变量

在这里插入图片描述

在这里插入图片描述

变量命名、前缀与标签

变量命名、添加前缀

sysuse auto, clear
rename make mk
rename (price rep78) (Price REP78) //批量重命名
rename mpg foreign trunk, upper    //大写

sysuse auto, clear // D2_gen.do
renvars price mpg wei, prefix(d1_) //批量添加前缀或后缀
des

在这里插入图片描述

通配符与批量重命名

// 把前缀为 jan 的变量全部重命名为后缀为 1 的变量名,如 janstat → stat1
rename jan* *1
// 去掉 jan 前缀
rename jan* *
// * 去掉 jan 后缀
rename *jan *
// 将前缀为 jan 的四位字符重命名为后缀为 1 的两位字符,如 jans → s1,janstat 不会发生变化
rename jan? ?1
// 删除 jan,如 janstat 重命名为 stat,injanstat → instat,subjan → sub
rename *jan* **
// 命名为 jan 前的字符,如 injanstat → in,statjan → stat(与下一个进行区分)
rename *jan* *
// 命名为 jan 后的字符,如 injanstat → stat
rename *jan* .*
// 为后缀为 pop 的变量名增加前缀 jan,如 age1pop → janage1pop
rename *pop jan=
// 所有变量增加前缀 pre
rename whatever pre=
// * 所有变量增加后缀 jan
rename whatever =jan
// 所有变量增加前缀 pre 且增加后缀 fix
rename whatever pre=fix
// 将由字母 v+ 数字的变量名重命名为 stat+ 数字,如 v1→stat1 v10→stat10
rename v# stat#
// 增加括号后表示重命名 v 后面跟 1 位数字的变量,v10 不会被重命名
rename v(#) stat(#)
// stat10 → stat_2010,stat2 不会发生改变
rename stat(##) stat_20(##)
// * stat1 → stat_2001,stat10 不会发生改变
rename stat(#) stat_200(#)
// 重命名为倒序变量名,如 v8 → v1,v7 → v2,v6 → v3
rename v# v#, renumber sort
// * 数字起始值 10,如 v1 → v10,v2 → v11
rename v# v#, renumber(10)
// a → v1,b → v2,c → v3
rename (a b c) v#, addnumber
// a12 → a21,a32 → a23
rename a(#)(#) a(#)[2](#)[1]

rename命令选项:

  • addnumber:在末尾添加顺序编号;
  • addnumber(#):在末尾添加指定起始值的顺序编号;
  • renumber:按顺序重新编号;
  • renumber(#):指定起始值开始顺序编号;
  • sort:编号前进行排序;
  • dryrun:报告但不进行重命名;
  • r:将变量名储存在 r() 中,编程时调用;
  • upper:将字母转换为大写;
  • lower:将字母转换为小写;
  • proper:将字母转换为首字母大写。

变量标签

sysuse auto, clear
des
label var price "汽车价格($)"
label var rep78 "维修次数"
des          //查看效果

在这里插入图片描述

数字-文字对应表

sysuse auto, clear
*-Step1: label define, 定义标签内容
label define rep78_label 1 "很好" 2 "较好" 3 "中等" 4 "较差" 5 "很差"

*-Step2: label value, 将变量与标签内容关联起来
label value  rep78 rep78_label

label list rep78_label     //查看对应关系
des2 rep78           //建议采用这种方式, 简洁
br   rep78

tab rep78 foreign

在这里插入图片描述

在这里插入图片描述

CSMAR数据处理

从CSMAR数据库中下载的企业财报数据,会把第一行作为独特代码,第二行作为变量标注(label),第三行写单位。在导入Stata中时,第一行可以自动转化为变量名,但第二行标注会在导入时成为第一个标量。

下面这段代码可以至直接将第三行删除,第二行转为变量label。

drop if _n == 2

foreach var of varlist * {                                // 对每一个变量
  label     variable    `var'             "`=`var'[1]'"   // 把变量标注为第一行的内容
  replace               `var' = ""   if   _n == 1         // 把第一行改为空
  destring              `var'        ,    replace         // 把变量destring

}
drop in 1                                                 // 删除第一行

查看、查找变量

sysuse nlsw88, clear
des        //几乎每一笔数据进来都要先执行该命令
des2       //完全替代了 des 命令

在这里插入图片描述

查找变量:lookfor

use "$path\_Data\d_lookfor", clear
lookfor "现金流"
lookfor "报酬"

在这里插入图片描述

单值、暂元

单值

定义单值: 存放数字

scalar a = 3
scalar b = ln(a) + 3^a
dis a
dis b

定义单值: 存放字符串

scalar c = .a
dis c
scalar s1 = "hello, Arlion"
scalar s2 = substr(s1,1,5)   // 单值的引用很简单
dis s1
dis s2

执行命令后的单值结果:

sysuse auto,clear
  
sum price 
return list // sum之后return list能将sum的结果保存到r中
dis r(N)
dis r(sd)

在这里插入图片描述

reg price weight length mpg         // see R9_esttab.do
ereturn list 
est store r1

reg price weight length mpg foreign
est store r2

esttab r1 r2, nogap scalar(r2 r2_a F N)

在这里插入图片描述

一些特殊的单值:

help _variables  // 系统变量
sysuse nlsw88, clear
dis _N          //样本数

creturn list // 系统参数设置
dis c(current_time)

暂元

局域暂元 (local) :只能存在于一次运行之中

local a = 5
display `a'  
// 注意应用方法 左边是` 右边是'

local b = `a' + 7
dis `b'

在stata中,他能通过字符串来引用变量(面向对象的编程语言是不行的(如py))

scalar x_1 = 7
local y = "x"
dis `y'_1

在这里插入图片描述

用于存放变量名称

sysuse auto, clear
local xx "price weight mpg foreign"
// *local xx "price weight mpg foreign i.rep78"
sum `xx'
reg `xx'

在这里插入图片描述

sysuse nlsw88, clear
reg wage hours i.race
local b0 = _b[_cons]     //常数项估计值
local b1 = _b[hours]     //系数估计值
local b2 = _b[2.race]    //虚拟变量的估计值
local b3 = _b[3.race]
local se_b1 = _se[hours] //标准误

dis "wage = `b0' + `b1'*hours + `b2'*2.race + `b3'*3.race"
gen wage_fit = `b0' + `b1'*hours + `b2'*2.race + `b3'*3.race
br wage*
dis "SE(b1) = " `se_b1'

暂元中的暂元:

local a1 = 2
local a2 "var"
local a3 = 2*`a1'
local a4 `a`a1''
    
dis  `a1'
dis "`a2'" // 因为a2是var所以需要用双引号扩住)
dis  `a3' 
dis "`a4'"

在这里插入图片描述

全局暂元:能长期存在内存中

sysuse nlsw88, clear
global xx "hours ttl_exp married union"

reg wage $xx // 全局暂元的引用方式
est store homo
reg wage $xx, robust
est store het
reg wage $xx i.occupation, robust
est store het_occu

利用暂元写循环语句

while循环:

local j = 0
while `j'<5{
    dis  `j'
    local j = `j'+1
}

forvalues 语句:

forvalues i = 1(2)14{
       dis  `i'
    }

用forvalues语句做分行业回归分析:

sysuse nlsw88, clear
global yx "wage hours collgrad ttl_exp"
forvalues i = 1/4{        //公差为 1 的等差数列
    dis _n(2) in yellow "Occupation == " in green `i' 
    reg $yx if occupation==`i'
    est store m`i'
}
esttab m1 m2 m3 m4, nogap s(r2_a N)
des2 occu

在这里插入图片描述

使用foreach导入多个文件,追加多个样本

global vlist "id year invest market stock"
// *-将 txt 文件转化为 dta 格式
foreach file in  Audi Benz BMW{
    insheet $vlist using `file'.txt,clear
    save `file'.dta, replace 
    }
// 追加样本
use Audi.dta, clear
foreach file in  Benz BMW{
    append using `file'.dta
}
list

在这里插入图片描述

变量名循环:foreach v of varlist …

// 1:多变量的缩尾处理
sysuse nlsw88, clear
local vars "wage hours ttl_exp grade"
foreach v of varlist `vars'{
    winsor `v' , gen(`v'_w) p(0.01)
}      
d *_w  

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/422903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TCP网络连接的书写

TCP网络连接的书写 文章目录TCP网络连接的书写服务器端书写进程sock创建创建bind进行端口绑定(进行bind的初始化)监听socket获取链接用户端创建sock套接字connect进行连接服务器端书写 为TCP是面向连接,所有需要进行对于端口进行监控&#xff0c;另外的UDP的服务器就不需要进行…

洛克菲勒:世界上只有两种人头脑聪明...

洛克菲勒&#xff1a;被人称为“石油大王”、美国第一位十亿富豪与全球首富、创办芝加哥大学。洛克菲勒写给儿子的信共有38封&#xff0c;这些信真实记录了洛克菲勒创造财富神话的种种业绩。从这些信中我们不仅可以看到洛克菲勒优良的品德、卓越的经商才能&#xff0c;还可窥见…

Spring面向切面编程AOP使用介绍

文章目录AOPAOP核心概念AOP快速入门AOP工作流程AOP切入点表达式AOP通知类型AOP通知获取数据AOP总结AOP AOP核心概念 AOP(Aspect Oriented Programming)面向切面编程&#xff0c;一种编程范式&#xff0c;指导开发者如何组织程序结构 OOP(Object Oriented Programming)面向对象…

Web自动化测试的详细流程和步骤,一篇足矣

Web自动化测试是软件测试中非常重要的一种测试方法&#xff0c;它通过编写脚本来模拟人工操作网页&#xff0c;从而实现对Web应用程序进行自动化测试的过程。为了保证测试质量和效率&#xff0c;我们需要遵循一定的流程和步骤来完成Web自动化测试。 一、测试环境准备 在进行W…

webp怎么转换成png,4个方法教你快速处理

webp怎么转换成png&#xff1f;目前在一些比较大的图片素材网站下载的图片都是webp格式的。我们都知道webp格式图片&#xff0c;它在正常的图片浏览器中是无法打开的。 所以说我们要把webp图片转变成png格式&#xff0c;正常来说我们常用的图片处理软件也能进行格式转换&#x…

都说互联网不行了,真的是这样吗?

最近在马士兵教育的课堂上经常会听到学员说这样的话&#xff1a; 现在公司都不招人&#xff0c;程序员根本找不到工作 早知道IT行业这么难&#xff0c;当初就不学编程了 简历石沉大海、面试机会也没有&#xff0c;互联网是不是不行了 互联网行情到底如何&#xff1f; 作为…

从此告别写SQL!DataLeap帮你零门槛完成“数据探查”

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 在日常数据处理工作中&#xff0c;产品、运营、研发或数据分析师经常会面临数据量大且混乱、质量参差不齐的问题&#xff0c;需要花费大量时间和精力校验表数据是否…

车企外卷:一个关于智能手机的“围城故事”

从2016年达到顶峰开始&#xff0c;全球智能手机出货量逐年下行&#xff0c;手机市场进入红海竞争逐渐成为了各界的共识。此后全球疫情与经济疲软的影响也进一步在手机市场施压&#xff0c;很多媒体认为手机产业距离“至暗时刻”已经不远。而在去年&#xff0c;新增变数&#xf…

Velocity tools进阶(下篇)

最近自己所做的项目使用到这个Velocity模板引擎&#xff0c;分享一下在互联网找的学习资料&#xff0c;仅供学习使用&#xff0c;不参与任何商业活动。 一. VelocityTools介绍 1.1 VelocityTools简介 Velocity Tools 是 Velocity模板引擎的一个子项目&#xff0c;用于将 Velo…

Excel玩转自然语言查询

ChatGPT火出圈&#xff0c;人类被人工智能替代又成为热门话题。有人欢喜&#xff0c;有人忧&#xff0c;也有人不以为意&#xff0c;觉得离自己工作远着呢&#xff0c;比如现在是用Excel做报表&#xff0c;有本事你动动嘴就直接把Excel里面的数据查询出来啊。 你可别说&#xf…

metersphere逻辑整理

整体架构 Frontend: MeterSphere 的前端工程, 基于 Vue.js 进行开发。 Backend: MeterSphere 的后端工程, 基于 Spring Boot 进行开发, 为 MeterSphere 的功能主体。 Chrome Plugin: 浏览器插件, 录制 Web 访问请求生成 JMeter 脚本并导入到 MeterSphere 中用于接口测试及性能…

阿里云产品试用更新,产品组合试用装更划算,快来免费上云吧

最近阿里云产品又上新了&#xff0c;尤其是推出了最新的产品组合试用装&#xff0c;个人觉得阿里云关于云产品的更新迭代是非常重视的&#xff0c;而且每次推出的产品不仅会惊艳到用户&#xff0c;而且产品功能也是随着一次迭代而更加完善、强大。前段时间也写了一篇关于为什么…

Nginx服务配置及相关模块

目录一、Nginx简介1、Nginx简介2、I/O模型相关概念3、Nginx事件驱动模型4、Nginx和Apache的区别二、编译安装Nginx服务1.关闭防火墙&#xff0c;将安装的Nginx软件包安装到opt目录下2、编译安装Nginx3、创建用户、组&#xff0c;以便于更好的管理4、创建软连接并启动5、停止Ngi…

FinClip 开发者工具重构升级!性能飞跃,体验有礼

一直以来不少开发者朋友在社区反馈&#xff0c;在使用 FIDE 工具的过程中&#xff0c;时常会遇到诸如加载不及时、代码预览/渲染性能不如意的情况&#xff0c;十分影响开发体验。 作为技术团队&#xff0c;我们深知一件趁手的开发工具对开发者的重要性&#xff0c;因此&#x…

企业AD域(域控服务器)的安装和配置详细教程

一、环境以及工具准备 软件&#xff1a;VMWare Workstation 2016 &#xff08; 下载链接&#xff1a;https://pan.baidu.com/s/1iX1VRilerYPGbGvX4pvaKw 提取码&#xff1a;75R6 &#xff09; 镜像&#xff1a;Windows Server 2016 &#xff08; 下载地址&#xff…

[CVPR 2020] Regularizing Class-Wise Predictions via Self-Knowledge Distillation

ContentsIntroductionClass-wise self-knowledge distillation (CS-KD)Class-wise regularizationEffects of class-wise regularizationExperimentsClassification accuracyReferencesIntroduction 为了缓解模型过拟合&#xff0c;作者提出 Class-wise self-knowledge distil…

SpringDataRedis客户端详解

SpringData是Spring中数据操作的模块&#xff0c;包含对各种数据库的集成&#xff0c;其中对Redis的集成模块就叫做SpringDataRedis&#xff0c;官网地址&#xff1a;https://spring.io/projects/spring-data-redis 提供了对不同Redis客户端的整合&#xff08;Lettuce和Jedis&…

乡村振兴吹响品牌号角——首届中国乡村振兴品牌大会成功举办

“品牌是力量&#xff0c;是变量&#xff0c;也是流量。”这是浙江省衢州市人大常委会副主任、常山县委书记潘晓辉在首届中国乡村振兴品牌大会上分享的乡村振兴实践体会&#xff0c;引发与会代表的广泛共鸣。 首届中国乡村振兴品牌大会主会场 4月10日至11日&#xff0c;以“加…

计组2.2——数据在计算机中的存储

计组2.2定点数和浮点数定点数无符号数有符号数的定点表示——定点整数和定点小数移位运算1.算术移位1.原码算数移位2.反码算数移位3.补码算术移位4.计算机硬件的乘法是基于算数移位和加法完成的2.逻辑移位3.循环移位加减运算溢出判断硬件判断溢出法一&#xff1a;单一符号位法二…

51单片机语音提示盲人拐杖整点报时夜间警示超声波测距

实践制作DIY- GC0128-语音提示盲人拐杖 一、功能说明&#xff1a; 基于51单片机设计-语音提示盲人拐杖 二、功能介绍&#xff1a; 硬件组成&#xff1a; STC89C52单片机最小系统LCD1602显示器红色LED灯ADC0832光敏电阻采集光强DY-SV17F语音播报模块HSR04超声波测距多个按键…