我已经使用Google表单进行了研究,现在我需要准备该数据以进行进一步的分析。关键是我真的不知道该怎么做。 我有变量(问卷调查问题),每个问题都有四个答案。在我的数据中,这些答案只是字符串,所以我们说:
Variable 1 (Here is a question)
Value = Answer (C. The answer)
现在,我需要将这些变量中的每个变量分成四个不同的变量,并且该数据的表示应如下所示:
Variable 1_1 where Value = 0
Variable 1_2 where Value = 0
Variable 1_3 where Value = 1 -> because as you seen above answer C was chosen.
Variable 1_4 where Value = 0
这是重新编码部分。它不再是字符串,而是0或1。
我希望这有道理。并先谢谢您。
答案 0 :(得分:0)
有很多方法可以做到这一点,所以这里是一种。 首先制作一些虚假数据进行演示:
data list free/var1 to var4 (4a1).
begin data
"a" "b" "a" "c" "c" "b" "a" "c" "d" "d" "a" "b"
end data.
现在为每个可能的答案使用单独的recode
命令-每个命令将处理所有具有那些可能答案的相关变量:
recode var1 to var4 ("a"=1)(else=0) into varA1 to varA4.
recode var1 to var4 ("b"=1)(else=0) into varB1 to varB4.
recode var1 to var4 ("c"=1)(else=0) into varC1 to varC4.
recode var1 to var4 ("d"=1)(else=0) into varD1 to varD4.
答案 1 :(得分:0)
如果您想一次执行一次此变量,则可以使用:
IF (variable1="a") variable1_1=1 .
IF (variable1="b") variable1_2=1 .
IF (variable1="c") variable1_3=1 .
IF (variable1="d") variable1_4=1 .
RECODE variable1_1 TO variable1_4 (SYSMIS=0) .
EXE .
如果所有变量都具有相同的响应结构,并且您想一次遍历所有变量,则可以使用VECTOR
来做到这一点。
VECTOR variable = variable1 TO variable100 /* existing variables */ .
VECTOR response1_var = response1_var (100,F1) /* create new vars, response1_var1 TO response1_var100 */ .
VECTOR response2_var = response2_var (100,F1) /* create new vars, response2_var1 TO response2_var100 */ .
VECTOR response3_var = response3_var (100,F1) .
VECTOR response4_var = response4_var (100,F1) .
LOOP #i = 1 TO 100 .
IF (variable(#i)="a") response1_var(#i)=1 .
IF (variable(#i)="b") response2_var(#i)=1 .
IF (variable(#i)="c") response3_var(#i)=1 .
IF (variable(#i)="d") response4_var(#i)=1 .
END LOOP .
RECODE response1_var1 TO response4_var100 (SYSMIS=0) .
EXE .
请记住,通过这种方式循环将通过“响应序列”对新变量进行排序,这与问卷调查的顺序相反。如果您想重新排序或重命名新变量,可以单独进行。