spss - 使用宏重复聚合命令
问题描述
我有一个包含 parcomm、subcomm、ccs、prov、data 列的数据集。我想获得前四列数据的汇总结果。我使用了如下所述的spss代码
DEFINE myvars (arg=TOKENS(4)).
aggregate
/OUTFILE=* MODE=ADDVARIABLES
/BREAK=!arg
/sum_!arg=sum(data).
!ENDDEFINE.
myvars parcomm subcomm ccs prov.
错误显示
第 2 列中的错误 # 10933。文本:parcomm AGGREGATE 命令上新变量的定义必须以斜杠终止。该命令的执行停止。
当我只尝试一个令牌时,出现以下错误:
DEFINE myvars (arg=!TOKENS(1)).
aggregate /OUTFILE=* MODE=ADDVARIABLES
/BREAK=!arg
/sum_sum=sum(data).
!ENDDEFINE.
myvars arg=prov.
第 48 列中的错误 #10934。文本:prov。AGGREGATE 命令指定一个未知的现有变量名。该命令的执行停止。
我应该如何解决这个问题?
解决方案
如果我理解正确,您要做的是aggregate
每次使用不同的中断变量运行,向数据集添加总和聚合。宏可以帮助循环变量,但您的宏缺少的是实际的循环。尝试这个:
首先只是创建一个小数据集来演示:
data list list/parcomm subcomm ccs prov data (5f2).
begin data
1 2 3 4 25
3 2 3 2 33
1 2 3 2 42
4 1 4 1 66
end data.
现在,下面的宏将遍历宏调用中的变量列表并aggregate
在每个变量上运行:
DEFINE myvars (arg=!cmdend).
!do !vr !in(!arg)
aggregate
/OUTFILE=* MODE=ADDVARIABLES
/BREAK=!vr
/!concat("sum_",!vr) = sum(data).
!doend
!ENDDEFINE.
myvars arg=parcomm subcomm ccs prov.
推荐阅读
- angularjs - 如何在同一页面中有多个 angularjs 材料?
- angular - 重试后没有调用catchError
- python - 我们可以从 .py 文件为窗口 7/7 Ultimate / 8 / 10 制作 .exe 文件吗?
- ios - 如何将 URLSessionTask 作为参数传递
- elasticsearch - cluster.routing.allocation.enable:似乎没有一个不起作用
- javascript - 在 React 组件中注册自定义事件
- html - 伪元素可以充当块元素而不重叠吗?
- api - LinkedIn API - 活动人口统计数据
- reactjs - platform.pause.subscribe 在 Ionic-React
- ios - 是否可以将应用程序的 iOS 设备设置重置为默认设置?