在 SPSS 中自动格式化变量的循环

问题描述

我有一个包含以下变量和相关格式的文件

ID --> String
Var1_flag1 --> Numeric
Var2_flag2 --> Numeric
Var3_flag1 --> Numeric
Var4_flag3 --> Numeric
Var5_flag3 --> Numeric
Var6_flag3 --> Numeric
Var7_flag2 --> Numeric
Var8_flag2 --> Numeric
Var9_flag1 --> Numeric

我想根据变量名中的正则表达式定义格式(而不是必须为每个列名显式定义变量)。

例如,我希望名称中包含 flag1 的所有变量的格式为 F10.3,flag2 的格式为 F10.2,flag3 的格式为 F10.1,所有与这些不匹配的列保留其现有格式的条件。

解决方法

您可以使用 spssinc select variables 根据您描述的属性创建变量列表,然后在语法中使用该列表。例如:

spssinc select variables macroname="!flag1" /properties pattern=".*flag1".
spssinc select variables macroname="!flag2" /properties pattern=".*flag2".
spssinc select variables macroname="!flag3" /properties pattern=".*flag3".
alter type !flag1 (F10.3) !flag2 (F10.2) !flag3 (F10.1) .