我正在试图弄清楚如何编写一个允许可变长度的矢量命令。
假设我有变量Item1到Item7。我可以写一个矢量语句......
VECTOR Item = Item1 to Item7。
在另一种情况下,我有20个项目而不是7个项目(即Item1到Item20),并假设我有一个名为num
的变量,其中包含数字20。
如何编写一个通用的Vector语句,可以使用concat
将“Item”和num
的值组合为后缀?
谢谢!
答案 0 :(得分:0)
这假设变量num
在所有行中具有相同的值。
我首先要创建一些可用的小样本数据。对于示例,我将使用语法创建一个包含13个变量的向量。
data list list/num item1 to item20 (21f5).
begin data
13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
13 2 3 4 5 4 5 6 7 6 7 8 9 1 2 3 4 5 6 7 8
end data.
现在要创建矢量,我首先在一个新变量中创建命令的文本:
string VecCom (a50).
compute VecCom=concat("VECTOR Item = Item1 to Item", ltrim(string(num,f5)), ".").
现在我将其写入新语法并运行它:
temp.
select if $casenum=1.
write out="somePath\create vector with specific length.sps" /VecCom.
exe.
insert file="somePath\create vector with specific length.sps".
现在定义了矢量 - 你可以这样看:
display vectors.