【问题标题】:SPSS flag if there is text in variable如果变量中有文本,则 SPSS 标志
【发布时间】:2021-01-08 08:00:02
【问题描述】:

我是 SPSS(第 25 版)的新手,我正在努力解决可能很简单的事情 - 我的变量是字符串,所以可以说药物名称或客户名称或任何字符串。我想计算一个新变量,如果单元格中有任何东西,它将标记它们(给它们值 1),如果单元格为空则错过,所以它看起来像这样

Var1 Var2
xxx   1
 -
yyy   1
zzz   1

等等。 var1 是数字的时候很容易,但是当它的字符串时就不行了

我尝试过类似的方法

IF NOT (var1="") var2 = 1 .

IF(NOT(var1="")) var2 = 1 .

但它会创建空的数字 var2

即使在我的指南上也这样说

If(sysmis(var1)) var1new = 1.

但它似乎不适用于 SPSS ver.25

希望您能帮我解决这个问题,从而节省大量工作

【问题讨论】:

  • 你使用的两种方式都应该工作(顺便说一句,你也可以使用这个:if var1<>"" var2=1.)。我猜你只是没有运行pending transformations。在代码中只需添加另一行 execute. 并与其他行一起运行,然后您将看到计算结果。
  • 特雷IF NOT (RTRIM(var1)="") var2 = 1 .。而且,正如@eli-k 提到的,不要忘记在你的命令之后运行EXECUTE.。但无论如何,我同意 eli-k,很可能是因为您没有执行待处理的转换

标签: spss


【解决方案1】:

正如您从 cmets 中看到的,有很多方法可以完成这项任务。我主张发出一个 COMPUTE 命令,您可以在其中根据逻辑条件设置新变量的值:

计算标志 = (CHAR.LENGTH(RTRIM(LTRIM(var1)))>0)。

执行。

上面查看了修剪后的字符串的长度(空格从值的右侧和左侧修剪掉)。如果单元格为空或包含空格,则修剪长度为零 (0),条件为“假”,新的“标志”变量将获得 0 值。如果存在数据,则修剪长度将 > 0,条件为“真”,新的“标志”变量的值为 1。

【讨论】:

    【解决方案2】:

    你没事 - 我没有设置执行。这是我在 SPSS 中的常见错误

    此外 - 我通过对这个变量执行 AUTORECODE 来管理它,然后我得到值为 1 的空值,然后 RECODEd (1=0)

    非常感谢您的帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      • 1970-01-01
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多