Stata中如何将多行数据合并为单个观测值
Stata合并多行观测值并提取首个有效值
核心思路
按id分组,对每个字符串变量提取组内第一个非空有效值,最终将同一id的信息合并为单个观测值。
操作步骤
- 构造示例数据(已有目标数据集可跳过此步):
clear input id str10 var1 str10 var2 str10 var3 1 "name1" "" "" 1 "" "name2" "" 1 "" "" "name3" 2 "name4" "" "" 2 "" "name5" "" 3 "name6" "" "" 3 "" "" "name8" 3 "" "" "name9" end
- 执行合并提取命令:
collapse (first) var1 var2 var3, by(id)
命令解释
by(id):指定按id分组处理(first):对每个变量提取分组内第一个非缺失(非空)的字符串值,自动忽略后续重复或空值——比如id=3的var3会保留name8,跳过后续的name9。
执行后得到的数据集如下:
| id | var1 | var2 | var3 |
|---|---|---|---|
| 1 | name1 | name2 | name3 |
| 2 | name4 | name5 | |
| 3 | name6 | name8 |
内容的提问来源于stack exchange,提问作者TerribleStudent
相关产品推荐
相关产品推荐

