使用语法在SPSS中重新编码变量

时间:2016-07-04 12:08:06

标签: syntax spss

我有一个包含1500多种医疗代码的数据集(Verrichtingcode)。它们的编码如337409A,339830E或336690.这是一个字符串变量。我想用语法来改变那些,比方说:腹腔镜腹部手术。我有所有这些代码的翻译。

如果我使用语法:

VALUE LABELS
Verrichtingcode
339985B 'Sedation'.
EXECUTE.

出来的是:339985 =“B'镇静'”

哪个不起作用。

然后我尝试重新编码>

RECODE Verrichtingcode
(339985B= AA339985BBB).
EXECUTE.


RECODE Verrichtingcode
(339985B= AA339985BBB).
EXECUTE.

这样可以正常工作,直到最后找到带有E的代码。

RECODE Verrichtingcode
(336070D= AA336070DBB)
(333698E= AA333698EBB).
EXECUTE.

RECODE Verrichtingcode
(336070D= AA336070DBB)
(333698E= AA333698EBB).
EXECUTE.

我得到的是:

>Warning # 203 in column 2.  Text: 333698E
>An 'E', beginning the exponent portion of a number, was not followed by any
>digits.
>The symbol will be treated as an invalid special character.

>Error # 4654 in column 2.  Text: 339993
>The RECODE command attempts to test a string variable for having a numeric
>value.  Note that LOWEST, HIGHEST, and SYSMIS are considered to be numeric
>values.
>Execution of this command stops.
EXECUTE.

我当然可以在变量视图中手动完成所有操作,但是使用1500多个程序需要一些时间;)

如果你们中的任何一个人如此友好地帮助我,我们将非常感激。如果您需要更多信息,我很乐意提供。

2 个答案:

答案 0 :(得分:2)

有了1500个代码,你真的不想用IF或RECODE做这个。分配值标签是处理此问题的常用方法。如果您确实需要将变量值作为标识字符串,那么表查找会更好。使用TABLE子命令匹配文件可以处理这个问题。您将使用键和标签创建数据集,对其进行排序和常规数据,然后将MATCH与TABLE一起使用。

答案 1 :(得分:1)

由于这是一个字符串变量,您需要在您使用的两个命令中的值周围使用引号:

VALUE LABELS  Verrichtingcode
'339985B' 'Sedation'.

RECODE Verrichtingcode ('339985B'= 'AA339985BBB').
EXECUTE.