完全披露 - 我没有编程经验。
我有一个很长的语法(1800行),这一部分给了我麻烦。我不能为我的生活弄清楚我做错了什么。
应该使用现有文件LastAwardingFile并将其缩小到/ KEEP语句中列出的变量。然后将每个变量重命名为类似的变量名,但是“oldxxxx”。稍后我的语法将新文件与此更新的变量文件匹配,并指出值中的任何更改,并在重新编码的文件中提供原因列表。
一旦语法到达第一个RENAME VARIABLES,我就会收到以下错误:
RENAME VARIABLES来自RENAME的重复变量名称。
如果我使用/ KEEP,有什么重复变量吗?如何将变量(例如“comb”)中的值取出并将它们放入一个新变量“oldcomb”中,以便我可以将本周的“梳子”与“oldcomb”进行比较?
提前谢谢!
使用SPSS 22
GET
FILE='LastAwardingFile.sav'.
DATASET NAME LastAwardingFile WINDOW=FRONT.
alter type Student_ID (A7).
SAVE OUTFILE='LastAwardingFile.sav'
/COMPRESSED
/KEEP= Student_ID rl_highschoolgpa comb need qualitygrp NewUpfrontGrant meritgrant
targetcounty_housing housinggrant tuitiongrant athlete_recruit bo_FAFSA_Filer maleincentivegrant_newupfront bo_nsex
nursing bio computerscience psyc minor criminalJustice education Business bo_nstate resident
femaleincentivegrant_newupfront total_EMFASYS_award.
DATASET NAME LastAwardingFile WINDOW=FRONT.
RENAME VARIABLES (total_EMFASYS_award=oldgrant).
RENAME VARIABLES (targetcounty_housing = oldtargetcounty_housing).
RENAME VARIABLES (nursing = oldnursing).
RENAME VARIABLES (femaleincentivegrant_newupfront = oldfemaleincentivegrant_newupfront).
RENAME VARIABLES (resident = oldresident).
RENAME VARIABLES (housinggrant = oldhousinggrant).
RENAME VARIABLES (bio = oldbio).
...etc
答案 0 :(得分:1)
首先说几句:最好保存到不同的文件名。在您的语法中,原始文件会被保存,您无法返回...另外,我建议您按照@Andy W的建议,了解如何仅保留文件中所需的变量。
现在,在您发布的示例语法中,我发现了一个错误 - 可能是您的问题:
RENAME VARIABLES (total_EMFASYS_award=oldgrant).
新名称为oldgrant
或oldtotal_EMFASYS_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 .
答案 1 :(得分:1)
有关RENAME VARIABLES
命令的注意事项 - 它的工作方式如下:
RENAME VARIABLES (list_of_starting_variable_names = list_of_final_variable_names).
你只需要提供2个名字列表,重命名将在提供名称的顺序中完成(列表1中的第一个变量被重命名为列表2中的第一个变量,... n-将列表1中的变量放入列表2中的第n个变量......依此类推。
这应避免您收到Duplicate Variable Names
错误,因为所有重命名都是一次性完成的。但是需要你稍微改变一下原始语法,并且有点难以发现哪个变量被重命名为哪个变量。