在Stata中工作,假设我有一个这样的数据表。。。
家庭标识符 | 个人标识符 | Var1 | Var2 | |
---|---|---|---|---|
1 | 1 | a | b | |
1 | 1 | cd//tr>|||
1 | 2 | e | f | |
2 | 1 | g | h | |
2 | 1 | i | j | |
2 | 1 | k | l||
2 | 2 | m | n||
2 | 2 | op | ||
3 | 1 | q | r |
您可以使用reshape wide
两次。请注意,当我创建rowid
时,我会给它添加一个下划线;我还为var1
和var2
列添加了下划线。在第一个reshape
调用中,我使用string
将rowid
标识为字符串变量
bysort householdidentifier personidentifier: gen rowid = strofreal(_n) + "_"
rename var* =_
reshape wide var1 var2, i(householdidentifier personidentifier) j(rowid) string
reshape wide var*, i(householdidentifier) j(personidentifier)
输出:
househ~r var1_1_1 var2_1_1 var1_2_1 var2_2_1 var1_3_1 var2_3_1 var1_1_2 var2_1_2 var1_2_2 var2_2_2 var1_3_2 var2_3_2
1. 1 a b c d e f
2. 2 g h i j k l m n o p
3. 3 q r