You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stata中基于家庭标识符将多行合并为单行的方法问询

在Stata中实现家庭层面数据宽格式转换的简便方法

可以通过生成观测序号 + reshape转宽 + 批量重命名变量三步完成,具体操作如下:

1. 预处理变量(可选但推荐)

先把带空格的变量名改成更易操作的格式:

rename "Household Identifier" hhid
rename "Person Identifier" pid

2. 生成个人观测序号

为每个家庭内的每个成员的重复观测生成序号,标记这是该成员的第几次记录:

bysort hhid pid: gen seq = _n

3. 转换为宽格式

使用reshape wide命令将数据按家庭聚合,把每个成员的多次观测转成列:

reshape wide Var1 Var2, i(hhid) j(pid seq) string
  • i(hhid)指定以家庭ID作为唯一标识(最终每个家庭一行)
  • j(pid seq)指定用成员ID和观测序号作为列名后缀
  • string确保后缀以字符串形式拼接,避免自动补零

4. 批量重命名变量匹配目标格式

通过正则表达式批量修改变量名,将默认生成的VarX_Y_Z格式改为PersonY_VarX_Z:

rename (Var[0-9]_[0-9]_[0-9]) , regex(Var(\d+)_(\d+)_(\d+), Person\2_Var\1_\3)

完成后的数据结构就会和你要求的一致:每个家庭对应一行,缺失的观测位置自动填充为.。


内容的提问来源于stack exchange,提问作者Henry P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 23:18:22