首页 > 解决方案 > 将一个变量的分组总和添加到原始数据中

问题描述

我的数据看起来像:

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

和许多其他专栏.. 我想知道的是每个家庭有多少孩子,我做了很多搜索并尝试通过以下方式取消 relative_desc 变量:

COMPUTE Child = (relative_desc = "Child").

然后尝试将聚合与样本 ID 的中断相加

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

这会将每个家庭中的样本 id 和孩子数移动到新数据集中,我所做的是将新的 sum 列合并到原始数据集中,但是我得到了很多丢失的数据,还有其他建议吗?太感谢了。

标签: countaggregatespss

解决方案


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

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

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

如果您确实更喜欢聚合到新数据集,然后将其重新附加回原始数据集,请在您的帖子中添加您用于该操作的语法,以便我们了解问题所在。


推荐阅读