【发布时间】:2015-07-11 19:26:32
【问题描述】:
假设我有这个数据:
group obs data data_A data_B
1 1 7_a 7_a
1 2 4_b 4_b
1 3 1_a 1_a
2 1 5_b 5_b
3 1
4 1 3_b 3_b
4 2 4_b 4_b
4 3 9_a 9_a
4 4 8_b 8_b
data_A 和data_B 是基于data 构造的。他们遵循这样的规则:如果data 以a 结束data_A 和b 以data_B 结束,则它们采用data 的值;如果数据为空白,data_A 和 data_B 都保持空白。
我想将数据重塑如下:
group data_A1 data_A2 data_B1 data_B2 data_B3
1 7_a 1_a 4_b
2 5_b
3
4 9_a 3_b 4_b 8_b
列数由值的数量自动确定。
7_a 和 9_a 位于 data_A1 中,因为它们是各自组中 a 变量的第一个实例。 1_a 在data_A2 中,因为它是a 变量在其组中的第二个实例,依此类推。
如何做到这一点?
(我知道reshape,这可以用于类似的情况。)
【问题讨论】:
-
我冒昧地根据您对我提供的初始答案的评论重新表述了这个问题,我将删除。我提供了一个更适合您的问题的新答案。