我有数据,我必须向客户端提供一个脚本,其中包含由另一个变量分组的特定变量的简单百分比。当我尝试计算案例总数(观察或行,无论你想要什么)时,问题出现了,但似乎根本不可能。
我搜索了一些代码,这些代码可以让我为每个注册的案例声明一个具有相同值(最大案例数)的数值常量变量,如下所示:
COMPUTE total_rows=$CASENUM.
EXECUTE.
COMPUTE max_number_rows = MAX(total_rows) .
COMPUTE total_percentage = MyVariable / max_number_rows * 100 .
但它不起作用......
通过互联网,我发现唯一的方法是使用AGGREGATE
命令,但我无法使用它,因为我必须提供一个且只有一个脚本文件和输出文件。我不能给客户端一个.sav包含原始数据,另一个包含AGGREGATE
函数生成的新表。
答案 0 :(得分:1)
AGGREGATE可以直接用于提取数据集中的案例总数:
AGGREGATE OUTFILE=* MODE=ADDVARIABLES /NRows=N.
查找AGGREGATE
的注释,特别是可用的不同聚合函数。特别是,我要提到的是功能N
和NU
之间的区别,其中N
返回加权的总基本大小,NU
是未加权的基本大小(当然,如果没有影响加权,则两者都产生相同的值。)
答案 1 :(得分:0)
AGGREGATE
是正确的方法。默认情况下,聚合会将新变量写入活动数据集,因此除非您明确指示为聚合变量创建新文件,否则不会使用其他数据文件。
尝试:
compute total_rows = $casenum.
aggregate nrows = max(total_rows).
compute total_percentage = (myvariable/nrows) * 100.
exe.
delete variables nrows total_rows.