我有一个基于调查的数据,每行代表一个特定的受访者,每列代表对调查中特定问题的回答。我有一个 72 列和 2417 行的数据集。对于每一行,我想找到每行缺失值的数量。我基本上想要评估的是每行中缺失值的百分比是多少。
COMPUTE counting_var = 0.
LOOP #i = 1 TO NCOLS(Dataset1).
DO IF (MISSING(Dataset1(#i))).
counting_var = counting_var + 1.
END IF.
END LOOP.
counting_var = counting_var/NCOLS(Dataset1)
EXECUTE.
此代码是使用 SPSS 语法编写的。 通过这段代码,我试图找到特定受访者回答的调查问题的百分比。如果某一行的所有列都已填满,则表示受访者已回答了所有问题。 然而,这段代码并没有像我预期的那样工作,它只是创建一个名为counting_var的新列并用0填充它。如果有人能帮助我修复此代码,我将不胜感激。不幸的是,我只能使用 SPSS 语法来完成此操作,而不能使用其他编程语言。
SPSS 有一个函数
nmiss
,无需循环即可获取一行中缺失值的数量。
假设函数中 var1
和 var72
之间的所有变量都是数值,并且在数据中连续,这应该对您有用:
compute Pmiss=nmiss(var1 to var72)/72.