我从调查表中获得了一组数据,要求每个参与者提名一个人,然后以几种才能对该人进行评分。与此相关的变量是:
参与者的ID(id)
被提名人(身份证)的ID
关于被提名人的一系列问题,范围为0-7(q1-q10)
q1-q10(qmean)的平均值
我如何格式化一个语法命令,以计算一个新变量,如果该变量提名了其他参与者,则该平均值等于其他参与者的qmean的平均值(即,如果他们的nomid等于该个体的id)?
很明显-
do if nomid = id.
compute qmeangot = mean(qmean).
execute.
无效,因为如果参与者以某种方式提名了自己,那么它只会创建一个与参与者的qmean相同的变量。
我在网上找不到任何内容,说明如何在语法命令中使用几个参与者的分数。
答案 0 :(得分:1)
您需要通过nomid
变量进行汇总以获得qmean
的均值,然后将新数据重新附加到原始数据,以便每个参与者都获得提名的均值(如果他们有提名的话) )。
这是为了创建一些虚假数据来演示:
data list list/id nomid (2a1) qmean (f6.2).
begin data
'a' 'b' 5.3
'b' 'a' 4.2
'c' 'a' 6.1
'd' 'b' 5.5
'e' 'c' 4.3
end data.
现在要执行实际任务:
dataset name gen.
sort cases by id.
dataset declare agg.
aggregate out=agg /break nomid /nomMean=mean(qmean). /*this created the requested calculation.
match files /file=* /table=agg/ rename nomid=id /by id. /* this attaches it back to original data.
exe.