不同长度的向量定义

Vector definition with varying length

我正在研究如何编写允许可变长度的矢量命令。

假设我有变量 Item1 到 Item7。我可以写一个向量语句...

矢量项 = Item1 到 Item7。

在另一种情况下,我有 20 个项目而不是 7 个(即 Item1 到 Item20),假设我有一个名为 num 的变量,其中包含数字 20。

我如何编写一个通用的 Vector 语句,它或许可以使用 concat 组合 "Item" 和 num 的值作为后缀?

谢谢!

这假定变量 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.