以 SPSS 长格式折叠数据
Collapsing data in SPSS long format
我有一个如下所示的数据集:
Year ID Sex Age_end_of_year Count Age_group
2008 1 1 0 2 1
2008 1 1 1 1 1
2008 1 1 2 6 1
2008 1 2 0 2 1
2008 1 2 1 5 1
2008 1 2 2 6 1
2008 2 1 0 5 1
2008 2 1 1 4 1
2008 2 1 2 7 1
2008 2 2 0 2 1
2008 2 2 1 3 1
2008 2 2 2 2 1
.
.
.
2016 99 1 45 20 3
Sex(1 或 2),Age_end_of_year 从 0-45,Count 可以是 0-100 的任何值。 Age_group 包含三个类别(0-15 岁、16-30 岁、31-45 岁)。该数据集包括超过 20 万个观测值。我想暂时将数据集保留为长格式,但我希望 ID 每年仅一次 return,如下所示:
Year ID Age_group_1_female Age_group_2_female Age_group_3_female Age_group_1_male ...
2008 1 8 7 9 4
2008 2 14 3 8 2
2008 3 1 2 10 1
2008 4 1 14 8 9
.
.
.
2016 99 4 2 4 9
换句话说,我想根据上述示例用单个变量替换 Sex、Age_group 和 Count 变量,同时删除 Age_end_of_year 变量。新变量应该按性别和 age_group 折叠计数数据。我玩过聚合,尝试使用向导进行转置和重组,但我无法让它工作。任何帮助表示赞赏!
casestovars
函数将根据您的需要进行重组,但为了改进生成的变量名称,我将首先为 sex
.
创建一个字符串变量
string sexT (a10).
if sex=1 sexT="Male".
if sex=2 sexT="Female".
*now for the restructure.
sort cases by year id SexT Age_group.
casestovars /id=year id /index=SexT Age_group /drop=Age_end_of_year sex/sep="_".
我有一个如下所示的数据集:
Year ID Sex Age_end_of_year Count Age_group
2008 1 1 0 2 1
2008 1 1 1 1 1
2008 1 1 2 6 1
2008 1 2 0 2 1
2008 1 2 1 5 1
2008 1 2 2 6 1
2008 2 1 0 5 1
2008 2 1 1 4 1
2008 2 1 2 7 1
2008 2 2 0 2 1
2008 2 2 1 3 1
2008 2 2 2 2 1
.
.
.
2016 99 1 45 20 3
Sex(1 或 2),Age_end_of_year 从 0-45,Count 可以是 0-100 的任何值。 Age_group 包含三个类别(0-15 岁、16-30 岁、31-45 岁)。该数据集包括超过 20 万个观测值。我想暂时将数据集保留为长格式,但我希望 ID 每年仅一次 return,如下所示:
Year ID Age_group_1_female Age_group_2_female Age_group_3_female Age_group_1_male ...
2008 1 8 7 9 4
2008 2 14 3 8 2
2008 3 1 2 10 1
2008 4 1 14 8 9
.
.
.
2016 99 4 2 4 9
换句话说,我想根据上述示例用单个变量替换 Sex、Age_group 和 Count 变量,同时删除 Age_end_of_year 变量。新变量应该按性别和 age_group 折叠计数数据。我玩过聚合,尝试使用向导进行转置和重组,但我无法让它工作。任何帮助表示赞赏!
casestovars
函数将根据您的需要进行重组,但为了改进生成的变量名称,我将首先为 sex
.
string sexT (a10).
if sex=1 sexT="Male".
if sex=2 sexT="Female".
*now for the restructure.
sort cases by year id SexT Age_group.
casestovars /id=year id /index=SexT Age_group /drop=Age_end_of_year sex/sep="_".