将一个变量的分组总和添加到原始数据

Adding grouped sum of one variable to the original data

我的数据如下:

Sample_ID Member_ID gender         relative_ID      relative_desc
1         11         male           1               Head
1         12         female         2               Partener
1         13         female         3               Child
1         14         female         3               Child
2         21         female         1               Head
2         22         male           3               Child
3         31         male           1               Head
3         32         female         2               Partener
4         41         male           1               Head
4         42         female         2               Partener
4         43         male           3               Child
4         44         male           3               Child
5         51         female         1               Head
5         52         female         3               Child
5         53         male           3               Child
5         54         male           3               Child

和许多其他专栏.. 我想知道每个家庭有多少child 我做了很多搜索并尝试通过 :

取消 relative_desc 变量
COMPUTE Child = (relative_desc = "Child").

然后尝试对样本 ID 的中断求和

DATASET DECLARE AggHouse.
AGGREGATE OUTFILE='AggHouse'
  /BREAK SAMPLE_ID
  /Child = SUM(Child).

这会将每个家庭中的样本 ID 和 child 的数量移动到新的数据集中,我所做的是将新的总和列合并到原始数据集中,但我得到了很多缺失的数据,任何其他建议? 非常感谢。

您可以直接聚合到原始数据集中,省去您的工作和麻烦:

AGGREGATE OUTFILE=* mode=addvariables overwritevars=yes
  /BREAK SAMPLE_ID
  /Child = SUM(Child).

注意 - overwritevars 子命令允许您用总和重写 Child 变量。或者,您可以将总和放入一个新变量中,例如 SumChild.

如果您确实希望聚合到新数据集,然后将其重新附加回原始数据集,请将您用于此的语法添加到您的 post 中,以便我们了解问题所在。