在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就会拉起来?
你可以用 AGGREGATE
函数来完成这一任务。您可以通过设置 /BREAK
然后使用 聚合函数.
在这种情况下: FIRST()
将会应用每一个 ID
到 都 的行观测值与该 ID
. 由于它需要第一个 不遗漏 值,它既 "向前 "又 "向后"。Gender
与每个 ID
(解决了你的两种情况)。
AGGREGATE
/OUTFILE=* MODE=ADDVARIABLES
/BREAK=ID
/Gender_Recoded=FIRST(Gender) .
@user45392建议的解决方案很完美,但这里还有一个不错的解决方案。
首先,我们把现有的值放在每个ID的第一行,然后对于重复的ID,我们从上面一行复制性别值。
sort cases by ID gender (d).
if ID=lag(ID) gender=lag(gender).