使用write命令来创建新的语法 - 与不需要的空格问题

问题描述 投票:2回答:2

我想的存储值在不同的文件中的变量列表上运行命令。要做到这一点,我基于变量名,这样创造了新的语法:

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

问题是最终和VAR1之间,我收到11位。其中,我想用这个宏文件具有变量名称Final_Var1(因此,在新的文件,最终被添加到每个变量的名称)。如何删除空间,使新的​​变量可以适当简称?我应该创建一个新的文件或COMPUTECONCAT命令?

syntax spss
2个回答
2
投票

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代码更有效地建立自己的变量列表。


1
投票

我找到了一个临时的解决方案,以便从这些变量中的空格,我创建使用一个新的变量:

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

如果简单的方式存在,请让我知道!

© www.soinside.com 2019 - 2024. All rights reserved.