我是一个完整的spss-novice,我无法弄明白。谷歌也没有给出任何答案(或者我不知道如何谷歌这个问题......这也是可能的)。
我必须根据两个变量创建一个新变量:
性别(0 =男性,1 =女性)
和
oudad(1 = 18-29岁; 2 = 30-54岁; 3 = 55-89岁; 4 =取消选择99)。
新变量必须有六个类别:
1. 18-29男性
2. 18-29女性
3. 30-54男
4. 30-54女
.. 等等。
我认为我必须对计算或重新编码为不同的变量做一些事情,但无法弄清楚要做什么。
谁能帮帮我?
答案 0 :(得分:3)
我不知道这是否是'正确'的方式,但这就是我完成它的方式。建议如何改进它,仍然赞赏:)
IF (gender = 0 & agegroup =1) GenAge=1.
IF (gender = 0 & agegroup =2) GenAge=2.
IF (gender = 0 & agegroup =3) GenAge=3.
IF (gender = 1 & agegroup =1) GenAge=4.
IF (gender = 1 & agegroup =2) GenAge=5.
IF (gender = 1 & agegroup =3) GenAge=6.
EXECUTE.
VALUE LABELS GenAge
1 'Young man'
2 'Middle-aged man'
3 'Old man'
4 'Young woman'
5 'Middle-aged woman'
6 'Old woman'.
答案 1 :(得分:2)
DO IF (Gender = 0 /* Male*/ AND Age = 1 /* 18 -29 */).
COMPUTE GenAge=1.
ELSE IF (Gender = 1 /* Female */ AND Age = 1 /* 18 -29 */).
COMPUTE GenAge=2.
ELSE IF (Gender = 0 /* Male */ AND Age = 2 /* 30 - 54 */).
COMPUTE GenAge=3.
ELSE IF (Gender = 1 /* Female */ AND Age = 2 /* 30 - 54 */).
COMPUTE GenAge=4.
ELSE IF (Gender = 0 /* Male */ AND Age = 3 /* 55 - 89 */).
COMPUTE GenAge=5.
ELSE IF (Gender = 1 /* Female */ AND Age = 3 /* 55 - 89 */).
COMPUTE GenAge=6.
END IF.
每对/*
&之间的内容*/
只是帮助使代码更具可读性和代码代码,因此完全可选。
而不是以这种方式的一系列IF
语句(对于大量类别来说可能更加繁琐),我通常会选择以下面的替代方式编写类似的代码:
RECODE Gender (0=2) (ELSE=COPY).
VALUE LABELS Gender 1 "Female" 2 Male".
COMPUTE GenAge=SUM(Gender*10, Age).
VALUE LABELS GenAge.
11 "Female 18 - 29"
12 "Female 30 - 54"
13 "Female 55 - 89"
21 "Male 18 - 29"
22 "Male 30 - 54"
23 "Male 55 - 89".
对于这种性质的分类变量,它通常与分配给它的代码无关,所以我总是更喜欢一种解决方案,它涉及尽可能少地编写代码,而且也不依赖于数据本身。如果订单非常重要,您可以随时选择由第十个单位整数表示Age
,并将单个单位整数表示为Gender
。