数据分解 (Disaggregate Data)

本教程介绍如何将聚合数据根据频率变量进行分解,还原成原始的未聚合数据。这在某些项目中可能很有用。

简介

有时候,你可能会拿到一份聚合的数据,并且带有一个表示频率的变量。例如,一行数据可能代表了5个具有相同特征的个体。在某些情况下,你可能需要将这些数据进行分解 (disaggregate),也就是将一行数据按照频率变量的值,复制成相应的行数。

SPSS 语法示例

***1. 创建测试数据.
**
data list free/gender employed frequency.
begin data
0 0 5 
1 0 2 
0 1 8 
1 1 5
end data.

value labels gender 0 '女性 (Female)' 1 '男性 (Male)' / employed 0 '未就业 (Unemployed)' 1 '已就业 (Employed)'.

***2. 写入分解后的数据文件.
**
loop # = 1 to frequency.
xsave outfile = 'd:/temp/disaggregated.sav' / drop frequency.
end loop.

***3. 打开分解后的数据文件.
**
get file = 'd:/temp/disaggregated.sav'.

说明

  • 这段 SPSS 语法 (SPSS Syntax) 仅在频率变量包含整数 (integers) 时有效。 如果频率变量包含小数,请使用 RND 函数进行四舍五入。
  • 这里的关键技巧在于 XSAVE 在技术上是一个转换 (transformation) 命令。 这就是为什么它可以在 LOOP 循环中使用。XSAVE 命令将当前循环中的数据保存到指定的文件 d:/temp/disaggregated.sav 中,drop frequency 表示在保存时删除频率变量。通过循环,每一行数据都会被复制frequency 次,从而实现数据的分解。