Обработчики spss! Поделись своими знаниями- как быстро и надежно убирать пустые ячейки в Multiple вопросах.Моя идея с векторами , к сожалению, в spss осуществить нельзя!
в Multiple вопросах может быть несколько ответов.и записываеются они подряд. А некоторые операторы вводят их вот так: NN Q5.1 Q5.2 Q5.3 Q5.4 Q5.5 Q5.6 Q5.7 Q5.8 Q5.9 Q5.10 Q5.11 Q5.12 Q5.13
Мне необходимо переписывать данные, чтобы ответы шли друг за другом без пустых ячеек.
Моя идея- менять пустые и не пустые ячейки местами с помощью векторов: *kol=количество ответов, А-вектор (сами ответы).
Loop i=1 to kol-1. do if sys(a(i)). loop j=i+1 to kol. do if not sys(a(j)). compute a(i)=a(j). compute a(j)=$sysmis. end if. end loop. end if. end loop. Вложенные циклы в spss не работают.
Comments 6
Reply
Reply
А некоторые операторы вводят их вот так:
NN Q5.1 Q5.2 Q5.3 Q5.4 Q5.5 Q5.6 Q5.7 Q5.8 Q5.9 Q5.10 Q5.11 Q5.12 Q5.13
74110 . 3 4 . . . . . . . . . .
1 . . . 4 . . . . . . . . 13
2 . . . 4 . . . 8 . . . . .
3 1 . 3 . . . . . . . . . .
59010 . . . 4 . . . . . . . . .
59012 1 . 3 . . . . . . . . . .
59013 . . . . 5 . . . . . . . .
59017 . . 3 4 . . . . . 10 . . 13
59021 . . 3 . . . . . . . . . .
59022 . . 3 . . . . . . . . 12 .
Мне необходимо переписывать данные, чтобы ответы шли друг за другом без пустых ячеек.
Моя идея- менять пустые и не пустые ячейки местами с помощью векторов:
*kol=количество ответов, А-вектор (сами ответы).
Loop i=1 to kol-1.
do if sys(a(i)).
loop j=i+1 to kol.
do if not sys(a(j)).
compute a(i)=a(j).
compute a(j)=$sysmis.
end if.
end loop.
end if.
end loop.
Вложенные циклы в spss не работают.
Reply
compute k=1.
do repeat r=q5.1 to q5.13/n=1 to 13.
IF (r>0) l(k) = r.
IF (r>0) k = k+1.
end repeat.
do repeat r=q5.1 to q5.13/n=1 to 13.
IF (n>=k) r = $SYSMIS.
end repeat.
execute.
Но вообще то таких ситуаций не должно быть в принципе.
Reply
150 M> loop #i= 2 to 13.
151 M> loop #i2= 2 to 13.
152 M> do if missing(mrc(#i2-1)) and not missing(mrc(#i2)).
153 M> comp mrc(#i2-1)= mrc(#i2).
154 M> comp mrc(#i2)= $sysmis.
155 M> end if.
156 M> end loop.
157 M> end loop.
161 M> exec.
Reply
Leave a comment