【问题标题】:Using Write command to create new syntax - problem with unwanted spaces使用 Write 命令创建新语法 - 不需要空格的问题
【发布时间】:2019-02-05 10:14:19
【问题描述】:

我正在尝试对存储为不同文件中的值的变量列表运行命令。为此,我正在创建一个基于变量名称的新语法,如下所示:

WRITE OUT="\Selection.sps" 
    /"VARIABLE ATTRIBUTE VARIABLES = Final_",Var1," ATTRIBUTE=selectVars('yes')." .
EXECUTE.

问题在 Final 和 Var1 之间,我得到 11 个空格。我要在其中使用此宏的文件的变量名称为 Final_Var1(因此在新文件中,Final 被添加到每个变量的名称中)。如何删除空格以便正确引用新变量?我应该创建一个新文件还是COMPUTECONCAT 命令?

【问题讨论】:

  • 另外,变量 Var1 有从 1 到 1000 的事例。后来,这些事例被转换为变量。我认为必须使用 TRIM 之类的东西,但此命令仅适用于 CONCAT。

标签: syntax spss


【解决方案1】:

write 命令有这样的限制——你不能避免空格或使用trim。对于像您正在处理的命令这样的命令,无法在 write 命令中构建命令 - 您必须提前构建文本,然后将其放入 write 命令中,所以 -

strimg mycmd(a100).
compute mycmd=concat("VARIABLE ATTRIBUTE VARIABLES = Final_", 
      ltrim(string(Var1,f4)), 
      " ATTRIBUTE=selectVars('yes').").
WRITE OUT="\Selection.sps" /mycmd .
exe.

请注意,这不是处理变量列表的唯一方法 - 您可以在语法中使用 Python 代码来更有效地构建变量列表。

【讨论】:

  • 嘿,谢谢!我刚刚添加了几行将 Var1 从 Numeric 转换为 String。
【解决方案2】:

我找到了一个临时解决方案,为了从变量中删除空格,我正在使用以下方法创建一个新变量:

    *Add a variable to use in .sps file.
NUMERIC A(F4).
COMPUTE A = Var1. 
ALTER TYPE A (A25).
STRING CMD (A100).
COMPUTE CMD = CONCAT("VARIABLE ATTRIBUTE VARIABLES = Final_", LTRIM (A) , ATTRIBUTE=selectVars('yes').").   
EXECUTE.

WRITE OUT="File location\Selection.sps" /CMD.
EXECUTE.

现在可以使用 Selection.sps 创建一个宏。

如果有更简单的方法,请告诉我!

【讨论】:

    猜你喜欢
    • 2015-03-07
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2017-03-14
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多