首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在spss宏中做IF和计算

在spss宏中做IF和计算
EN

Stack Overflow用户
提问于 2017-09-30 20:06:10
回答 4查看 747关注 0票数 3

我有以下spss语法:

代码语言:javascript
运行
复制
DO IF SYSMIS(V5).
 COMPUTE V5 = LAG(V5).
END IF.
EXE.

效果很好。但是,我想对几个变量重复相同的过程。我试图编写一个宏来实现这一点,但是我一直收到错误消息。这是我的尝试:

代码语言:javascript
运行
复制
define filldown (!positional !cmdend).
  do if sysmis(!1).
   compute !1 = lag (!1).
  end if.
  execute.
!enddefine.

!filldown V5 age wt htm.

如何编写能够工作的宏(我是宏新手)?

EN

Stack Overflow用户

发布于 2017-09-30 20:48:52

宏只是一个文本替换函数。它实际上将用调用宏( !1 )时提供的任何参数替换您的V5 age wt htm

为了保持简单,我建议使用一个简单的do repeat命令,而不是宏,如果您不熟悉宏,使用它们可能会有点不舒服。

代码语言:javascript
运行
复制
do repeat varlist=V5 age wt htm.
if sysmis(varlist) varlist=lag(varlist).
end repeat.
exe.

P.S.:如果你真的想要使用宏,你需要对每个变量分别调用它。

票数 2
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46506603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档