在字符串中查找数字并创建新的真/假变量



我有两个字符串变量(DiagnosePrimary & DiagnoseOther(,它们将诊断编码为数值并用"~"描述。 因此,第一人在第一次访问时被诊断为"20",然后在第二次访问时什么都没有。

DiagnosisPrimary
20~
12~~~
20~20~
12~12~
12~~
~~~~~
12~12

如果 20表示被诊断出患有抑郁症,我想看看字符串中是否有"20"。基本上,找出谁在任何一次访问中被诊断出患有抑郁症。过去我使用过下面的公式,但现在数据是数字和文本的混合,它不再有效。

COMPUTE Dx_Depression =ANY(20, DiagnosisPrimary) OR ANY(20, DiagnosisOther).

我想创建一个具有真/假响应的新变量。

任何帮助非常感谢!

你应该使用CHAR.INDEX函数,它返回一个字符串在另一个字符串中的位置(如果子字符串不存在,则返回 0(

COMPUTE Dx_Depression = (CHAR.INDEX(DiagnosisPrimary, '~20~') >0) or 
(CHAR.INDEX(DiagnosisPrimary, '~20')=char.len(DiagnosisPrimary)-3) or 
(CHAR.INDEX(DiagnosisPrimary, '20~')=1) or 
(CHAR.INDEX(DiagnosisOthers, '~20~') >0) or 
(CHAR.INDEX(DiagnosisOthers, '~20')=char.len(DiagnosisOthers)-3) or 
(CHAR.INDEX(DiagnosisOthers, '20~')=1)

最新更新