String SPSS REPEAT:如何使用替代变量作为变量名的一部分?

String SPSS REPEAT:如何使用替代变量作为变量名的一部分?,string,spss,recode,String,Spss,Recode,我用的是spss20。 在我的数据集中有一个字符串变量列表,我想将其重新编码为数字。最初我想让他们重新编码成自己。 我意识到这是不可能的,因为SPSS在数据集中按案例运行,一个变量一次只能有一种类型。 因此,我希望将它们重新编码到新变量中,但后缀为\u rec DO REPEAT var = var_1 var_2 ... var_n. RECODE var (CONVERT) INTO var_rec. END REPEAT. 但这只会创建一个新变量,而不是几个新变量 我还尝试制定一个

我用的是spss20。 在我的数据集中有一个字符串变量列表,我想将其重新编码为数字。最初我想让他们重新编码成自己。 我意识到这是不可能的,因为SPSS在数据集中按案例运行,一个变量一次只能有一种类型。 因此,我希望将它们重新编码到新变量中,但后缀为
\u rec

DO REPEAT var = var_1 var_2 ... var_n.
  RECODE var (CONVERT) INTO var_rec.
END REPEAT. 
但这只会创建一个新变量,而不是几个新变量

我还尝试制定一个变通方案:

COMPUTE Job_2
STRING Job(A20)
    DO REPEAT var = var_1 var_2 ... var_n.
COMPUTE var = Job. 
RECODE Job (CONVERT) INTO Job_2.
DELETE VARIABLES var.
COMPUTE var = Job_2.  
END REPEAT. 
但这不起作用,因为
删除变量
不能在
DO REPEAT
循环中使用

所以我回到我原来的问题

您说它们(字符串变量)不能重新编码到自身中,但它们可以使用

其中F8.2是宽度为8和2个小数点的数字变量

您可以对多个替代变量列表使用
DO REPEAT
,如下所示:

DO REPEAT Old = var_1 var_2 var_3
    /New = var1_rec var2_rec var3_rec.
  RECODE Old (CONVERT) INTO New.
END REPEAT PRINT. 
扩展出来的等效于:

RECODE var_1 (CONVERT) into var1_rec.
RECODE var_2 (CONVERT) into var2_rec.
RECODE var_3 (CONVERT) into var3_rec.
但如果要这样做,则可以直接在
RECODE
命令中执行此操作,如下所示:

RECODE var_1 var_2 var_3 (CONVERT) INTO var1_rec var2_rec var3_rec.
这两种方法都假定原始变量都是字符串变量(具有任意宽度和不同宽度)

请注意函数的具体功能,即获取字符串变量(包含存储为字符串的数值)并将其转换为数字格式变量。所以输入变量总是一个字符串,输出数字

您说它们(字符串变量)不能重新编码到自身中,但它们可以使用

其中F8.2是宽度为8和2个小数点的数字变量

您可以对多个替代变量列表使用
DO REPEAT
,如下所示:

DO REPEAT Old = var_1 var_2 var_3
    /New = var1_rec var2_rec var3_rec.
  RECODE Old (CONVERT) INTO New.
END REPEAT PRINT. 
扩展出来的等效于:

RECODE var_1 (CONVERT) into var1_rec.
RECODE var_2 (CONVERT) into var2_rec.
RECODE var_3 (CONVERT) into var3_rec.
但如果要这样做,则可以直接在
RECODE
命令中执行此操作,如下所示:

RECODE var_1 var_2 var_3 (CONVERT) INTO var1_rec var2_rec var3_rec.
这两种方法都假定原始变量都是字符串变量(具有任意宽度和不同宽度)


请注意函数的具体功能,即获取字符串变量(包含存储为字符串的数值)并将其转换为数字格式变量。所以输入变量总是一个字符串,输出数字

对于您的第一个建议:SPSS是否会遍历每个变量列表,从而将var_1、var_2和va3_3重新编码到var_1_rec中(例如)?最后只对变量3进行重新编码。第二条建议:为了做到这一点,重新编码需要所有变量都具有相同的类型和宽度。更新帖子以提供帮助。非常感谢。我不知道DO REPEAT是这样工作的。你的第一个建议是:SPSS是否会遍历每个变量列表,从而将var_1、var_2和va3_3重新编码到var_1_rec中(例如)?最后只对变量3进行重新编码。第二条建议:为了做到这一点,重新编码需要所有变量都具有相同的类型和宽度。更新帖子以提供帮助。非常感谢。我不知道这样做重复工作。