Unicode 带有重命名变量的SPSS问题

Unicode 带有重命名变量的SPSS问题,unicode,syntax,spss,Unicode,Syntax,Spss,我的语法很长(1800行),这一部分给我带来了麻烦。我一辈子都搞不清楚我做错了什么 它应该获取一个现有文件,并将其缩小到/KEEP语句中列出的变量。然后将每个变量重命名为类似的变量名,但“oldxxxx”。稍后,我的语法将新文件与此更新的变量文件匹配,并指出值中的任何更改,在重新编码的文件中列出原因 一旦语法到达第一个重命名变量,就会出现以下错误: 重命名变量从重命名中复制变量名 提前谢谢你 首先要说几句话:保存到不同的文件名会更好。在您的语法中,原始文件被保存,您无法返回。。。另外,我建议您遵

我的语法很长(1800行),这一部分给我带来了麻烦。我一辈子都搞不清楚我做错了什么

它应该获取一个现有文件,并将其缩小到/KEEP语句中列出的变量。然后将每个变量重命名为类似的变量名,但“oldxxxx”。稍后,我的语法将新文件与此更新的变量文件匹配,并指出值中的任何更改,在重新编码的文件中列出原因

一旦语法到达第一个重命名变量,就会出现以下错误:

重命名变量从重命名中复制变量名


提前谢谢你

首先要说几句话:保存到不同的文件名会更好。在您的语法中,原始文件被保存,您无法返回。。。另外,我建议您遵循@Andy W的建议,即如何在文件中只保留所需的变量

现在,在您发布的示例语法中,我看到一个错误-可能是您的问题:

重命名变量(total\u EMFASYS\u award=oldgrant)。

新名称改为
oldgrant
oldtotal\u EMFASYS\u award
。可能再往下一点你会接到另一个命令

RENAME VARIABLES (grant=oldgrant).
因此有了双重名称

要避免此类错误并缩短语法,可以使用以下宏:

define renVars (!pos=!cmdend)
rename variables 
!do !i !in (!1) !i = !concat("old",!i)
!doend .
!enddefine.
运行此宏定义后,可以通过声明宏名称和要重命名的变量的完整列表来运行宏,如下所示:

renVars 
Student_ID rl_highschoolgpa comb need qualitygrp NewUpfrontGrant meritgrant 
targetcounty_housing housinggrant  tuitiongrant athlete_recruit .
RENAME VARIABLES (list_of_starting_variable_names = list_of_final_variable_names).

关于
重命名变量
命令,需要注意的一点是,它的工作原理如下:

renVars 
Student_ID rl_highschoolgpa comb need qualitygrp NewUpfrontGrant meritgrant 
targetcounty_housing housinggrant  tuitiongrant athlete_recruit .
RENAME VARIABLES (list_of_starting_variable_names = list_of_final_variable_names).
您只需要提供两个名称列表,重命名将按提供名称的顺序进行(列表1中的第一个变量重命名为列表2中的第一个变量,…列表1中的第n个变量重命名为列表2中的第n个变量…依此类推)


这应该可以避免出现重复变量名的错误,因为所有重命名都是一次性完成的。但是需要您稍微更改原始语法,并且更难发现哪个变量重命名为哪个变量。

SAVE命令不会更改活动数据集,它只会从数据集中删除一些变量它创建的新sav文件。如果您运行类似于
addfiles file=*/KEEP[VARS HERE](或newfilename.sav)“.DATASET NAME LastAwardingFile WINDOW=FRONT。
在第一个
重命名变量之前再次…
,但如果使用旧文件名,则应覆盖此内容。