每个案件的结转数据

问题描述 投票:1回答:1

在SPSS中,如何将纵向数据向前拉到每个id的空白单元格?

举个例子。

ID Time Gender
1  1    M
1  2    .
1  3    .
2  1    F
2  2    .
2  3    .
3  1    .
3  2    F
3  3    .

我怎样才能做到这一点?

ID Time Gender Gender_Recoded
1  1    M      M
1  2    .      M
1  3    .      M
2  1    F      F
2  2    .      F
2  3    .      F
3  1    .      .
3  2    F      F
3  3    .      F

然后一旦我能够进行正向操作,有没有一个命令可以像例3,1那样进行反向操作,这样F就会拉起来?

time-series spss longitudinal
1个回答
1
投票

你可以用 AGGREGATE 函数来完成这一任务。您可以通过设置 /BREAK 然后使用 聚合函数.

在这种情况下: FIRST() 将会应用每一个 ID 的行观测值与该 ID. 由于它需要第一个 不遗漏 值,它既 "向前 "又 "向后"。Gender 与每个 ID (解决了你的两种情况)。

AGGREGATE
 /OUTFILE=* MODE=ADDVARIABLES
 /BREAK=ID
 /Gender_Recoded=FIRST(Gender) .

1
投票

@user45392建议的解决方案很完美,但这里还有一个不错的解决方案。

首先,我们把现有的值放在每个ID的第一行,然后对于重复的ID,我们从上面一行复制性别值。

sort cases by ID gender (d). 
if ID=lag(ID) gender=lag(gender). 
© www.soinside.com 2019 - 2024. All rights reserved.