根据性别重新编码或计算年龄类别

  • 本文关键字:计算 编码 新编码 spss
  • 更新时间 :
  • 英文 :


我是一个完全的spss新手,我不明白。谷歌也没有给出任何答案(或者我不知道如何谷歌这个问题…这也是可能的)。

我必须创建一个基于两个变量的新变量:

性别(0=男,1=女)

Oudad(1= 18-29岁;2 =年龄30-54;3 = 55 - 89岁;4 =取消99年).

新变量必须有六个类别:
1. 29男
2. 18 -女性
3.30-54男
4. 30-54女性
. .等等......

我想我必须做一些计算或重新编码成不同的变量,但不知道该怎么做。

谁能帮我?

我不知道这是不是"正确"的方法,但这是我完成它的方法。建议如何改进它,仍然是感激的:)

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'.

查找DO IF和/或IF命令

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".

对于这种性质的分类变量,它通常与分配给它的代码无关,所以我总是喜欢一个解决方案,它涉及编写尽可能少的代码,而且也不依赖于数据本身。如果顺序很重要,可以选择用第10个单位整数表示Age,用单个单位整数表示Gender

相关内容

最新更新