使用循环运行多个 VarToCases 命令

问题描述 投票:0回答:1

我有一个数据集,其中包含 40 组,每组 32 个变量。每组变量具有相同的 32 个变量,仅通过不同的索引命名:因此,一组变量有 A1_Themes1 A1_Themes2 ...;下一组有 A2_Themes1 A2_Themes2 ...;依此类推到A40_Themes1 A40_Themes2 ....(还有一组变量Course1到Course 40,它们是每个组来自的索引变量:A1组来自Course1等)。

对于最终结果,我希望得到一个包含 32 个变量的数据集——主题 1 主题 2 等(加上一个指示每个观察来自的课程编号)和 40 个观察。因此,我需要一个 VarsToCases 命令,但我试图避免必须有 32 个不同的 /Make 语句。我尝试了 Do Repeat,但显然你不能在 Do Repeat 循环中使用 VarsToCases。

想法?--

spss
1个回答
0
投票

您可以使用 SPSS 宏来完成此类操作。宏操作文本以创建语法。 如果变量在文件中是连续的,那么创建命令会更简单,那么您可以使用

course1 to course40
A1_Themes1 to A1_Themes40
,但以下宏不假设这一点并单独调用每一列,因此即使它们不是,这也应该起作用连续:

define doLongVTC ()
varstocases make course from !do !c=1 !to 40 !concat("course",!c) !doend
!do !t=1 !to 32
   /make !concat("Themes", !t) from
   !do !a=1 !to 40 !concat("A",!a, "_Themes", !t) !doend
!doend .
!enddefine.

* now the macro is defined, you can call it in a new line.  
doLongVTC  .
© www.soinside.com 2019 - 2024. All rights reserved.