* Вычисление процента от суммарного веса вопросов. * У меня имеется шкала, состоящая из 47 пунктов (вопросов), кодами ответов на которые являются нули и единицы. Каждый вопрос имеет свой вес, варьирующийся от 9.16 до 13.51. При обработке вес каждого вопроса умножается, соответственно, на 0 или 1, в зависимости от ответа на него. Затем сумма этих произведений делится на максимально возможную сумму произведений (как если бы все ответы были единицами), которая составляет 544.76, для вычисления процента накопленных весов. * Мой вопрос касается того, как скорректировать общий максимальный вес, если по одному или большему числу вопросов ответ пропущен (не стоит ни 0, ни 1). Например, если пропущен вопрос с весом 11.55, я желал бы вычесть 11.55 из 544.76, чтобы максимально возможная сумма составила 533.21. Если два вопроса пропущены, из 544.76 я буду вычитать веса и того, и другого. * Я бы хотел написать синтаксис, который бы делал нужные мне вычисления автоматически. Любые предложения приветствуются. * Ответ размещен в SPSSX-L 23.10.2000. Автор: Raynald Levesque. DATA LIST LIST /s1 TO s3 w1 TO w3. BEGIN DATA 1 1 1 0 1 0 . 1 . 0 0 0 1 1 0 END DATA. LIST. * Припишем вопросам веса. COMPUTE w1=9. COMPUTE w2=11. COMPUTE w3=10. *Зафиксируем, какие вопросы не имеют пропусков. VECTOR s=s1 TO s3. VECTOR exist(3F1.0). LOOP #cnt=1 TO 3. COMPUTE exist(#cnt)=~SYSMIS(s(#cnt)). END LOOP. * Вычислим максимально возможную сумму весов для вопросов без пропусков. VECTOR w=w1 TO w3. VECTOR maxw(3F3.2). LOOP #cnt=1 TO 3. COMPUTE maxw(#cnt)=w(#cnt)*exist(#cnt). END LOOP. *Вычислим накопленную сумму весов из ответов, равных единице. VECTOR score(3F3.2). LOOP #cnt=1 TO 3. COMPUTE score(#cnt)=s(#cnt)*w(#cnt). END LOOP. *Вычислим процент накопленных весов. COMPUTE pcscore=SUM(score1 TO score3)/SUM(maxw1 TO maxw3). EXECUTE.