我正在使用SPSS并且拥有一个由个人对调查问题的回答组成的数据集。这是纵向数据,因此受试者至少进行了两次调查,有的多达四到五次。
我的变量是ID
(比例),date
调查完成(日期 - dd-mmm-yyyy),response
调查问题(比例)。
数据集按ID
排序date
(升序)。每个date
对应于调查时间1,时间2等。我想要做的是计算一个新变量time
,该变量对应于特定参与者的调查完成日期。然后,我想使用该变量来完成数据集的长期到广泛的重组。
所以,我想完成以下内容并且不确定如何去做:
1)我有这样的事情:
ID Date Assessment_Answer
----------------------------------
1 01-Jan-2009 4
1 01-Jan-2010 1
1 01-Jan-2011 5
2 15-Oct-2012 6
2 15-Oct-2012 0
2)想要计算另一个能给我这个的变量:
ID Date Assessment_Answer Time
-----------------------------------------
1 01-Jan-2009 4 Time1
1 01-Jan-2010 1 Time2
1 01-Jan-2011 5 Time3
2 15-Oct-2012 6 Time1
2 15-Oct-2013 0 Time2
3)重组,以便我有这样的事情:
ID Time1 Time2 Time3 Time4
--------------------------
1 4 1 5
2 6 0
答案 0 :(得分:1)
您可以使用sequential case processing创建一个变量,该变量是每个ID中的计数器。例如:
*Making fake data.
DATA LIST FREE / ID (F1.0) Date (DATE10) Assessment_Answer (F1.0).
BEGIN DATA
1 01-Jan-2009 4
1 01-Jan-2010 1
1 01-Jan-2011 5
2 15-Oct-2012 6
2 15-Oct-2012 0
END DATA.
*Making counter within ID.
SORT CASES BY Id Date.
DO IF ($casenum = 1) OR (Id <> LAG(ID)).
COMPUTE Time = 1.
ELSE.
COMPUTE Time = LAG(Time) + 1.
END IF.
FORMATS Time (F2.0).
EXECUTE.
现在,您可以使用CASESTOVARS
重新设置您请求的数据。
CASESTOVARS
/ID = Id
/INDEX = Time
/DROP Date.