如何在Stata中基于相同id将数据按列分组整理
在Stata中按id将数据转换为宽格式
原始数据
| id | value |
|---|---|
| 1 | 99 |
| 3 | 88 |
| 2 | 77 |
| 1 | 66 |
| 1 | 55 |
| 3 | 11 |
目标效果
| id | value1 | value2 | value3 |
|---|---|---|---|
| 1 | 99 | 66 | 55 |
| 2 | 77 | ||
| 3 | 88 | 11 |
实现步骤
为每个id的观测值生成组内序号
按id分组后,给每组内的观测值分配连续序号,用于区分同一id下的不同value:bysort id: gen seq = _n执行后数据集会新增
seq变量,同一id下的观测值会被标记为1、2、3...将长格式转换为宽格式
使用reshape命令完成格式转换,指定id为个体标识,seq作为列名后缀:reshape wide value, i(id) j(seq)执行后原始
value变量会被拆分为value1、value2、value3,同一id的所有value合并到同一行,缺失位置自动留空。(可选)查看转换结果
用list命令确认最终数据集:list, clean
内容的提问来源于stack exchange,提问作者Doe
相关产品推荐
相关产品推荐

