gpt4 book ai didi

macros - 在 spss 宏中执行 IF 和计算

转载 作者:行者123 更新时间:2023-12-04 23:47:42 28 4
gpt4 key购买 nike

我有以下 spss 语法:

DO IF SYSMIS(V5).
COMPUTE V5 = LAG(V5).
END IF.
EXE.

它工作正常。但是我想对几个变量重复相同的过程。我试图编写一个宏来实现这一点,但我不断收到错误消息。这是我的尝试:

define filldown (!positional !cmdend).
do if sysmis(!1).
compute !1 = lag (!1).
end if.
execute.
!enddefine.

!filldown V5 age wt htm.

我如何编写一个可以工作的宏(我是宏的新手)?

最佳答案

@horace_vr 的 do repeat 解决方案对于这种情况绝对是正确的方法。以下内容只是为了让您在使用宏时了解一些有关宏的知识。

首先,你可以对每个变量分别使用你现在的宏,但是你需要使用原来的宏调用(不要加“!”),所以:

filldown V5.
filldown age.
....

当然你可以在宏中创建一个循环,像这样:

define filldown (!positional !cmdend).
!do !vr !in (!1)
do if sysmis(!vr).
compute !vr = lag (!vr).
end if.
execute.
!doend
!enddefine.

现在您可以对完整列表使用一次宏调用:

filldown V5 age wt htm.

关于macros - 在 spss 宏中执行 IF 和计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46506603/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com