我有一个包含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多个程序需要一些时间;)
如果你们中的任何一个人如此友好地帮助我,我们将非常感激。如果您需要更多信息,我很乐意提供。
答案 0 :(得分:2)
有了1500个代码,你真的不想用IF或RECODE做这个。分配值标签是处理此问题的常用方法。如果您确实需要将变量值作为标识字符串,那么表查找会更好。使用TABLE子命令匹配文件可以处理这个问题。您将使用键和标签创建数据集,对其进行排序和常规数据,然后将MATCH与TABLE一起使用。
答案 1 :(得分:1)
由于这是一个字符串变量,您需要在您使用的两个命令中的值周围使用引号:
VALUE LABELS Verrichtingcode
'339985B' 'Sedation'.
或
RECODE Verrichtingcode ('339985B'= 'AA339985BBB').
EXECUTE.