查看原文
其他

Stata编程:_n 和 _N 有啥区别?

连享会 连享会 2023-10-24

👇 连享会 · 推文导航 | www.lianxh.cn

连享会 · 2022 空间计量专题

连享会 · 2022 面板数据因果推断专题


作者:梁淑珍 (华侨大学)
邮箱:13514084150@163.com

温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:


目录

  • 1. 引言

  • 2. 系统变量

  • 3. 显式索引

  • 4. 分组索引

  • 5. 分组求和/均值

  • 6. 相关推文



1. 引言

_n_N 还傻傻分不清?这是 Stata 初学者经常面临的一个问题。灵活使用 _n_N 能够解决数据处理过程中一些棘手的问题。为此,本文将详细梳理二者间的区别和使用场景。

2. 系统变量

所谓系统变量是指 Stata 自带并更新的变量,其形式为 _variables_n_N 是常见的两个系统变量,其中 _n 为当前数据集中观测值的编号,_N 为当前数据集中观测值的总数或数据集分组后的各组观测值的总数。常见的系统变量还有:

  • _b[varname]:某变量的回归系数;
  • _se[varname]:某变量的标准误;
  • _cons:截距项系数;
  • _pi:圆周率 π;
  • _rc:执行 capture 命令后的返回值。

3. 显式索引

在实际操作中,可以通过索引的方式引用某个变量的观测值,具体做法是在变量名后加一对方括号,并在方括号中输入位置参数。

. * 生产变量 x,并赋值 1-10
. clear
. set obs 10
. gen x = _n

. * 生成变量 y1,y1 所有观测值为 x 的第 1 行观测值
. gen y1 = x[1]
. * 生成变量 y2,y2 所有观测值为 x 的第 2 行观测值
. gen y2 = x[2]

. list, noobs
+--------------+
| x y1 y2 |
|--------------|
| 1 1 2 |
| 2 1 2 |
| 3 1 2 |
| 4 1 2 |
| 5 1 2 |
|--------------|
| 6 1 2 |
| 7 1 2 |
| 8 1 2 |
| 9 1 2 |
| 10 1 2 |
+--------------+

4. 分组索引

_n_N 除了适用于整个数据集外,还适用于分组后的数据集。

. clear
. input id oldvar
. bys id: gen small_n=_n
. bys id: gen big =_N
. bys id: gen newvar=oldvar[1]
. list, noobs

+--------------------------------------+
| id oldvar small_n big newvar |
|--------------------------------------|
| 1 1.1 1 3 1.1 |
| 1 2.1 2 3 1.1 |
| 1 3.1 3 3 1.1 |
| 2 4.1 1 2 4.1 |
| 2 5.1 2 2 4.1 |
+--------------------------------------+

此时数据集被分为两组,观测值 1-3 为一组,4 和 5为一组。_n 返回的是分组后各观测值的组内位置编号,_N 返回的是分组后组内观测值总数,oldvar[1] 引用的是分组后组内的第 1 个观测值。分组索引的应用常见于面板数据,具体在在实证中通常是以公司和年份作为分组变量进行一系列操作。

5. 分组求和/均值

导入 auto 数据集,计算国内和国外的汽车平均价格。

. sysuse auto, clear
. * 法一
. bys foreign: gen avgx1 = sum(price) / _n
. bys foreign: replace avgx1 = avgx1[_N]
. * 法二
. bys foreign: egen avgx2 = mean(price)

6. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 程序 编程, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题:计量专题
    • Stata:事件研究法的编程实现
  • 专题:Stata教程
    • Stata编程:暂元,local!暂元,local!
    • 普林斯顿Stata教程(三) - Stata编程
  • 专题:Stata命令
    • moremata程序包手动安装方法
  • 专题:Stata程序
    • Stata:复合双引号在编程中的应用
    • Stata小白编程:暂元及macrolists命令
    • Stata小白编程:步步为营-以阶乘计算为例
    • Stata程序:最大公约数和最小公倍数
    • Stata程序:10 分钟快乐编写 ado 文件
    • Stata程序:Monte-Carlo-模拟之产生符合特定分布的随机数
    • Stata程序:我的程序多久能跑完?
    • Stata程序:暂元-(local)-和全局暂元-(global)
    • Stata程序:切割文件路径和文件名
    • Stata程序:是否有类似-Python-中的-zip()-函数
    • Stata程序:在我的程序中接纳另一个程序的所有选项
    • Stata 程序:数值求解极值的基本思想
  • 专题:合成控制法
    • Stata:合成控制法程序分享
  • 专题:内生性-因果推断
    • Robins - Causal Inference: What if - 数据和程序

课程推荐:面板数据因果推断
主讲老师:徐轶青 (斯坦福大学)
🍓 课程主页https://gitee.com/arlionn/Course

New! Stata 搜索神器:lianxhsongbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存