Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在字符串中查找数字并创建新的true/false变量_String_Variables_Syntax_Spss - Fatal编程技术网

String 在字符串中查找数字并创建新的true/false变量

String 在字符串中查找数字并创建新的true/false变量,string,variables,syntax,spss,String,Variables,Syntax,Spss,我有一个两个字符串变量DiagnosisPrimary&diagnosissother,它将诊断编码为数值并用“~”表示。 所以第一个人在第一次就诊时被诊断为“20”,第二次就诊时什么也没有 DiagnosisPrimary 20~ 12~~~ 20~20~ 12~12~ 12~~ ~~~~~ 12~12 如果20代表被诊断患有抑郁症,我想看看字符串中是否有“20”。基本上,在他们的任何一次探访中,找出谁被诊断为抑郁症。过去我使用过下面的公式,但现在数据是数字和文本的混合体,不再有效 COMP

我有一个两个字符串变量DiagnosisPrimary&diagnosissother,它将诊断编码为数值并用“~”表示。 所以第一个人在第一次就诊时被诊断为“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)

只是一个想法——如果诊断值有可能是200或120,那么它将被错误地计算为20。为了避免这一点,我们需要在文本的开头或“~(20)”的中间寻找“20”。所以:计算Dx_Depression=CHAR.indexdiagnosisspry,'20~'=1或CHAR.indexdiagnosissother,'20~'=1或CHAR.indexdiagnosisspry,'20~'>1或CHAR.indexdiagnosissother,'20~'>1。@eli-k-这是一个非常重要和正确的注释@Erin如果回答了您的问题,请将答案标记为已接受;这样,它也可以帮助其他人