我需要在SPSS中计算一个新的变量来读取" 1"如果一个ID在"秋天"并且在春天"。以下是数据的示例。我想ID#14576 = 0的输出,因为它只有Spring的评级,但ID#10869 = 1,因为它在春季和秋季有评级。 timePeriod变量位于" string"格式,所以我尝试了下面的公式,但它只提供" 0"在所有ID旁边。你知道我应该做什么吗?
compute bothtimeperiods=0.
if (timeperiod="Fall" and timeperiod="Spring") bothtimeperiods=1.
数据是:
ID rating timePeriod
14576 3.0 Spring
14576 2.0 Spring
14576 5.0 Spring
14576 4.0 Spring
10869 1.0 Spring
10869 2.0 Spring
10869 4.0 Spring
10869 4.0 Spring
10869 1.0 Fall
10869 5.0 Fall
10869 5.0 Fall
10869 2.0 Fall
答案 0 :(得分:1)
一种方法是计算两个表示春天或秋天的虚拟变量,然后使用AGGREGATE
来说明是否在人员Id中发生任何变量。这为您提供了信息。你需要检查。示例如下。
DATA LIST FREE / ID (F5.0) rating (F3.1) timePeriod (A6).
BEGIN DATA
14576 3.0 Spring
14576 2.0 Spring
14576 5.0 Spring
14576 4.0 Spring
10869 1.0 Spring
10869 2.0 Spring
10869 4.0 Spring
10869 4.0 Spring
10869 1.0 Fall
10869 5.0 Fall
10869 5.0 Fall
10869 2.0 Fall
11111 3.0 Spring
22222 4.0 Fall
END DATA.
COMPUTE AnySpring = (timePeriod = "Spring").
COMPUTE AnyFall = (timePeriod = "Fall").
AGGREGATE OUTFILE=* MODE=ADDVARIABLES OVERWRITE=YES
/BREAK ID
/AnySpring AnyFall = MAX(AnySpring AnyFall).
COMPUTE bothTimeperiods = (AnySpring = 1) AND (AnyFall = 1).
EXE.