Stata 数据框 frames

frames (数据框) 操作是 Stata 16+ 的进阶操作,适用于多个数据集的读写操作。相比于 preserve/restore 命令,操作起来更快,冗余更少,效率更高!

知识点:frames dir / frames create / frames change / frames put / frames copy / frames post / frlink / frames drop

推荐资料:
慧航 | Stata教程第4节:数据框的使用_哔哩哔哩_bilibili
Stata:如何同时对多个数据框操作-frame
使用stata数据框frame处理数据
利用stata计算分组基尼系数的四种方法

  • 数据框(Data frames)
    • 定义:支持同时操作多个数据集而不用频繁打开、关闭文件,或者频繁使用 preserve/restore 操作。
    • 好处:数据框的数据常驻内存,启用、切换速度快;而打开、关闭文件需要频繁读取和写入硬盘,速度慢。
  • 常用命令
    • 打开 Stata 之后便会默认创建的 frames:default
    • 查看内存的 frames:frames dir
    • 新建空 frames
      • frames create fname
    • 新建 frames 并添加新变量
      • frames create fname varname1 varname2
    • 向 frames 添加数据
      • frames post fname (111) (222)
    • 不同 frames 之间的切换
      • frames change fname
    • 不切换当前 frames 的前提下,调用/查看/描述另一个 frames 的数据
      • frames fname: use a.dta, clear
      • frames fname: sum wage
    • 拷贝 frames
      • 完整拷贝:frames copy fname fname_new
      • 部分拷贝:frames put var1-var5, into(fname_new)
    • 删除 frames
      • 删除某个 frames:frames drop fname
      • 清除所有的 frames:clear frames/clear all
    • 多个 frames 连接(类似 merge):frlink
      • frlink m:1 cid, frame(usingfname)
      • 调用当前数据框以外的其他数据框某个变量的取值
        • frval(fname, varname)
      • 复制变量至当前 frames
        • frget varname, from(fname)
  • 使用场景(小案例)
    • 把女性样本的数据另存为 female.dta
    • 创建新的 frames1 和 新的 frames2,并分别调用 a.dtab.dta 数据,利用数据拟合线性回归,然后进行结果对比
    • 将当前 framesframes2 根据 cidyear 1:1 匹配起来,然后利用 frames2 中的 xx1 生成一个新变量 x_new
* 把女性样本的数据另存为 female.dta *
use main.dta
frames put if sex == 1, into(female)
* 创建新的 frames1 和 新的 frames2,并分别调用 a.dta 和 b.dta 数据,利用数据拟合线性回归,然后进行结果对比 *
frames create a
frames a: use a.dta

frames create b
frames b: use b.dta

frames a: reg y_a x_a
est store a

frames b: reg y_b x_b
est store b

est table a b
* 将当前 frames 和 frames2 根据 cid 和 year 1:1 匹配起来,然后利用 frames2 中的 x 和 x1 生成一个新变量 x_new *
frlink 1:1 cid year, frame(frames2)
gen x_new = frval(frames2, x1)/frval(frames2, x2)

你可能感兴趣的:(Stata 数据框 frames)