繁体   English   中英

同时重新编码多个变量

[英]Recoding multiple variables at the same time

所以我想循环超过200个变量(它们不是按顺序)并将字符串答案重新编码为代码。 我在excel中有一个代码帧列表,每个字符串有超过2000个不同的代码。 因为它们不按顺序我想在SPSS中使用python来做到这一点,但由于我是新手,我不知道如何编写实际的重新编码。

begin program.
import spss 
for v in ['a','b','c']: #list of variables I want to loop over
 # MISSING RECODE part ("string1"=1) ("string2"=2) ("string3"=3) etc.... up to whatever number of codes I want   
end program.

你能不能帮我找到缺少的部分代码,我的意思是语法应该如何?

谢谢M.

正如@ eli-k的回答指出的那样,你不需要在Python中循环或做任何事情,以便将相同的重新编码方案应用于多个变量。 Vanilla SPSS语法处理得非常好。 但是,拥有超过2000个字符串到代码的配对可能会有问题。 (有时我只能通过20次配对来解决RECODE语法问题。)

解决方案是使用AUTORECODE工具及其APPLY TEMPLATE选项:

AUTORECODE var1 var2 var3 
  /INTO nvar1 nvar2 nvar3 
  /APPLY TEMPLATE = 'my_template.sat'

SPSS用作模板的.sat文件只是具有不同扩展名的.sav文件的特例。 它们只有两个变量:一个名为“Source_”的字符串和一个名为“Target_”的数字变量(注意大小写和尾随下划线)。 只要您使用这些变量名称,就可以通过将Excel中的字符串到代码映射导入SPSS,然后另存为.sat文件来创建自己的模板。

关于使用AUTORECODE的一个关键注意事项:数据中找不到Source_列中的任何字符串将自动分配新代码。

在SPSS语法中,您可以一次对一堆变量使用相同的重新编码模式而不进行循环,例如:

recode var1 var2 var3 ("apple"=1)("orange"=2)("banana"=3) into Nvar1 Nvar2 Nvar3.

如果要将字符串重新编码为数字,则必须重新编码为新变量。 或者,如果您不想要新变量,则可以执行以下操作:

recode var1 var2 var3 ("apple"="1")("orange"="2")("banana"="3").
alter type var1 var2 var3 (f6.2).

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM