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

时间:2015-08-03 09:27:32

标签: string spss recode

我正在使用SPSS 20。 在我的数据集中是一个字符串变量列表,我想将其重新编码为数字。最初我希望将它们重新编入自己。 我意识到这是不可能的,因为SPSS通过数据集逐例运行,一个变量一次只能有一个类型。 所以我希望将它们重新编码为新变量,但后缀为_rec

DO REPEAT var = var_1 var_2 ... var_n.
  RECODE var (CONVERT) INTO var_rec.
END REPEAT. 

但是这只创建了一个新变量var_rec而不是几个新变量。

我还试图编写一个解决方法:

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. 

但这不起作用,因为DELETE VARIABLES无法在DO REPEAT循环中使用。

所以我回到原来的问题。

1 个答案:

答案 0 :(得分:0)

你说他们(字符串变量)无法重新编码,但他们可以使用ALTER TYPE

ALTER TYPE var_1 var_2 var_3 (F8.2). 

其中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.

两种方法都假设原始变量都是字符串变量(任何宽度和宽度不同)。

记下CONVERT 函数的确切含义,即获取字符串变量(包含存储为字符串的数值)并将其转换为数字格式变量。所以输入变量总是一个字符串并输出数字。