SPSS:如何在文本中查找文本?
SPSS: how to find text in text?
在我的 SPSS 数据集中,我有一个字符串变量 QuestionA,其中包含某个问题的答案。但是,不仅可以检查一个答案,还可以检查多个答案。
例如,如果检查答案 02、05 和 07,它将作为字符串“02;05;07”保存在变量 QuestionA 中。
我想为特定答案 02 创建一个变量。我们称该变量为 Answer02。如果 QuestionA 在其文本中的任何地方都不包含 02,则它应该包含 0,如果 QuestionA 实际上在任何地方都包含 02,则它应该包含 1。
对我来说,关键在于人们也可以检查答案 01,这使得答案包含在问题 A 01;02 中。
如果可能的话,答案应该是通用的,这样我也可以用类似的方式创建一个变量 Answer05。
这应该会给你一种味道:
DATA LIST FREE / Q (A9).
BEGIN DATA
"01" "02" "03" "01,02" "02,03" "04,05"
END DATA.
DO REPEAT A=A1 to A3 /B="01" "02" "03".
IF CHAR.INDEX(Q,B)>0 A=1.
END REPEAT.
RECODE A1 to A3 (SYSMIS=0).
EXE.
如果你只对那一种情况感兴趣,这段代码会更简单。
COMPUTE Answer02=char.index(QuestionA, "02") > 0.
在我的 SPSS 数据集中,我有一个字符串变量 QuestionA,其中包含某个问题的答案。但是,不仅可以检查一个答案,还可以检查多个答案。
例如,如果检查答案 02、05 和 07,它将作为字符串“02;05;07”保存在变量 QuestionA 中。
我想为特定答案 02 创建一个变量。我们称该变量为 Answer02。如果 QuestionA 在其文本中的任何地方都不包含 02,则它应该包含 0,如果 QuestionA 实际上在任何地方都包含 02,则它应该包含 1。
对我来说,关键在于人们也可以检查答案 01,这使得答案包含在问题 A 01;02 中。 如果可能的话,答案应该是通用的,这样我也可以用类似的方式创建一个变量 Answer05。
这应该会给你一种味道:
DATA LIST FREE / Q (A9).
BEGIN DATA
"01" "02" "03" "01,02" "02,03" "04,05"
END DATA.
DO REPEAT A=A1 to A3 /B="01" "02" "03".
IF CHAR.INDEX(Q,B)>0 A=1.
END REPEAT.
RECODE A1 to A3 (SYSMIS=0).
EXE.
如果你只对那一种情况感兴趣,这段代码会更简单。
COMPUTE Answer02=char.index(QuestionA, "02") > 0.