Syntax 使用Write命令创建新语法-不需要空格的问题

Syntax 使用Write命令创建新语法-不需要空格的问题,syntax,spss,Syntax,Spss,我正在尝试对存储为不同文件中的值的变量列表运行命令。为此,我基于变量名创建了一个新语法,如下所示: WRITE OUT="\Selection.sps" /"VARIABLE ATTRIBUTE VARIABLES = Final_",Var1," ATTRIBUTE=selectVars('yes')." . EXECUTE. 问题是在Final和Var1之间,我得到了11个空格。我要在其中使用此宏的文件的变量名为Final_Var1(因此在新文件中,Final被添加到每个变量的名

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

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

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

写入命令是这样限制的-您不能避免空格或使用
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代码来更有效地构建变量列表。

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

    *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创建宏


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

此外,变量Var1的大小写从1开始到1000。稍后,这些案例将转换为变量。我认为必须使用类似TRIM的命令,但此命令仅适用于CONCAT。嘿,谢谢!我只是添加了几行代码,将Var1从数值转换为字符串。