【问题标题】:Create indicator variables in SPSS using loops使用循环在 SPSS 中创建指标变量
【发布时间】:2017-03-24 19:44:31
【问题描述】:

我正在尝试使用循环在 SPSS 中创建一些指标变量。

如果 BA(1-17) 等于 1,我想创建 17 个新变量 ABA(1-17),它们的值为 1。我正在尝试类似:

VECTOR ABA(17).
LOOP #i = 1 to 17.
IF(BA(#i)=1) ABA(#i) = 1.
END LOOP.
EXECUTE.

不幸的是,这只会创建具有缺失值的变量。上面的代码是否只需要稍加调整,或者它们是一种更有效的方式来完成创建变量?

【问题讨论】:

    标签: loops variables syntax spss


    【解决方案1】:

    我相信您需要将 BA 变量集定义为向量,然后才能在代码中引用它们。所以试试:

    VECTOR ABA(17) /BA=BA1 to BA17.
    LOOP #i = 1 to 17.
    IF(BA(#i)=1) ABA(#i) = 1.
    END LOOP.
    EXECUTE.
    

    注意,鉴于BA 变量已存在于数据集中,您不能将它们引用为VECTOR BA(17).,而是必须使用VECTOR BA=BA1 to BA17. 如果它们在数据文件中不按顺序排列,那么您必须按顺序使用它们ADD FILES FILE 重新排列变量排序。

    【讨论】:

    • 你是对的!实际上,我确实尝试了“VECTOR BA(17)”,但没有成功。
    • 我不知道为什么SPSS 不允许这样做,但它也困扰着我,尤其是当变量不按顺序排列时。如果不是,我倾向于跳到 python 寻求解决方案……这在处理这些类型的动态方面要好得多。
    • @JinneshSutar 你知道有什么好的在线资源可以解释如何在 SPSS 中创建循环和向量吗?
    • 你实际上不需要在这里循环。 RECODE ABA1 TO ABA17 (1 = 1)(ELSE = SYSMIS) INTO BA1 TO BA17. 会产生相同的结果。
    • 一般来说,当您需要使用一长串不连续的变量时,STATS SELECT VARIABLES (Utilities > Define Variable Macro) 扩展命令通常会有所帮助。它定义了一个宏,列出了元数据选择的变量,例如名称中的模式。在这种情况下,它可能类似于 SPSSINC SELECT VARIABLES MACRONAME="!BA" /PROPERTIES PATTERN = "BA"。该宏可以在接受变量列表的任何地方使用。也可以指定类型等其他属性。
    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 2016-05-08
    • 2011-10-21
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 2014-11-11
    相关资源
    最近更新 更多