【问题标题】:How to test if a variable exists如何测试变量是否存在
【发布时间】:2018-09-26 14:10:35
【问题描述】:

我需要在 IF 语句中运行 SPSS 语法,该语句测试文档中是否存在变量。我无法正确进行 IF 测试。我正在尝试这样做:

do if (test if myVariable exists).
// execute code here
end if.
Execute.

我查看了here 并尝试了这个:

DO IF (myVariable) exist=1.
END IF.
Execute.

但我收到错误“DO IF 命令的逻辑表达式后面有多余的文本。我误解了代码吗?

【问题讨论】:

  • 是的,您肯定完全错过了重点;)无论如何,代码是在spssinc select variables 可用之前编写的,这是一个不错的捷径 - 请参阅我的答案。

标签: macros spss


【解决方案1】:

spssinc select variables 命令根据指定的属性创建变量列表。在这种情况下,属性将是名为“MyVar”的变量。如果变量不存在,列表将保持为空:

spssinc select variables macroname="!findMyVar" /properties pattern="MyVar".

现在我们定义一个宏,只有当上面的列表不为空时才会运行一些命令:

define doifMyVarexists ()
!if (!eval(!findMyVar)<>"") !then
  * put your commands here, like following examples.
  compute MyVar=MyVar*2.
  freq MyVar.
!ifend
!enddefine.

* the macro is ready, now we call it:
doifMyVarexists.

如果您多次运行,您将面临一个问题,即如果 MyVar 存在一次并且在以后的运行中不存在 - 列表不会被清空(只有在有变量要放入时才会被覆盖)。 要解决此问题,请在再次运行 select variables 之前使用以下行清空列表:

define !findMyVar() !enddefine.

【讨论】:

  • 感谢您的帮助,非常感谢。对迟到的回复表示歉意。
猜你喜欢
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 1970-01-01
  • 2016-07-27
相关资源
最近更新 更多