我正在处理来自多项选择调查问题的数据。受访者可以选择选项A,B,C和/或D。数据文件仅列出他们选择的响应,中间没有空格,逗号或分号。例如,选择了选项A和C的受访者的数据将只是“ AC”;选择选项A,B,C和D的受访者的数据将为“ ABCD”。
我需要创建4个新变量,以指示受访者是否选择了4个选择中的每个选择(即,如果他们没有选择A,则A = 0;如果他们选择了A,则A = 1,依此类推)。考虑到响应之间没有空格或逗号,我该如何处理我的字符串数据?非常感谢您的帮助!
OP在他的评论中正确地暗示了答案,但是为了清楚起见,并且出于Stack Overflow的精神,这是完整的答案:
假设multi_answer
是保存调查答案的字符串变量:
DO REPEAT answers="A" "B" "C" D"
/vars=var1 to var4.
COMPUTE vars=0.
if CHAR.INDEX(multi_answer,answers)<>0 vars=1.
END REPEAT.
EXECUTE.
编辑:根据eli-k的评论,一种更综合的方法是在DO REPEAT
END REPEAT
结构中使用此方法:compute vars=char.index(multi_answer,answers)>0.
因此您不需要compute vars=0.
编辑结束。
这两个代码都将创建4个变量(var1 var2 var3 var4),其值为0或1,如问题中所述。
关于字符串函数(包括CHAR.INDEX
函数)的[IBM SPSS官方帮助:https://www.ibm.com/support/knowledgecenter/pl/SSLVMB_23.0.0/spss/base/syn_transformation_expressions_string_functions.html
也可能是这样的重复:):SPSS: how to find text in text?