在spss python

时间:2015-08-06 15:17:50

标签: python spss

我正在使用SPSS中的大型数据集。一个变量代表学生'第一专业,有1-15的价值,指的是学生可以拥有的15种不同类型的专业。第二个变量是相同的但是对于第二个/双重专业。

我想将响应组合成一个单一变量主要组。

我让它以这种方式工作:

do if(major1Group =1 or major2Group=1).
compute majorGroup = 1. 
ELSE IF(major1Group = 2 or major2Group = 2).
compute majorGroup = 2. 
else if(major1Group =3 or major2Group=3). 
compute majorGroup = 3. 
else if(major1Group =4 or major2Group=4).
compute majorGroup = 4. 
else if(major1Group =5 or major2Group=5).
compute majorGroup = 5. 
else if(major1Group =6 or major2Group=6).
compute majorGroup = 6. 
else if(major1Group =7 or major2Group=7).
compute majorGroup = 7. 
else if(major1Group =8 or major2Group=8).
compute majorGroup = 8. 
else if(major1Group =9 or major2Group=9).
compute majorGroup = 9. 
else if(major1Group =10 or major2Group=10).
compute majorGroup = 10. 
else if(major1Group =11 or major2Group=11).
compute majorGroup = 11. 
else if(major1Group =12 or major2Group=12).
compute majorGroup = 12. 
ELSE if(major1Group =13 or major2Group=13).
compute majorGroup = 13. 
else if(major1Group =14 or major2Group=14).
compute majorGroup = 14. 
else if(major1Group =15 or major2Group=15).
compute majorGroup = 15.  
end if. 

......但我相信未来必须有更有效的方式。我的尝试:

    begin program.
    import spss,spssaux
    vdict = spssaux.VariableDict
    major1Group = vdict("major1Group")
    major2Group = vdict("major2Group")
    iterations = len(major1Group)
    i = 1 
    majorGroup = []
    while i <= iterations: 
       if ((major1Group == i) or (major2Group == i)):
          majorGroup[i] = i
       i = i+1

    end program. 

非常感谢你。我对SPSS和python都比较新,所以非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

只需一行代码即可获得相同的结果(参考spss语法代码):

COMPUTE majorGroup = MIN(major1Group, major2Group).