在 SPSS 中创建一个变量以保持与最大值的关联

Create a variable to hold an association with a max value in SPSS

我需要创建一个变量来指示学生所属的小学。每个学生在一年内有 5 个学校变量。第一个学校变量始终填充学生的 5 位数学校代码;如果一个学生一年就读了 5 所学校,则所有 5 个变量都会被填充;如果他们只上一所学校,则只填充第一个变量。我也有相应的变量,其中包含学生在每所学校的天数,最多 180 天。我需要一个变量,其中包含他们在学年大部分时间就读的学校的 5 位数学校代码。如果他们只上了一所学校,则无论他们上了多少天,都应该是与他们有联系的那所学校。我可以使用 DO IF 命令和循环来创建这个变量吗?下面的语法仅适用于第一所学校,效率低下,而且不完全适用,因为它没有捕获低于 90 天门槛的学生(即只在一所学校上学少于 90 天)。

8 月 2 日更新:我确实需要捕捉一年 1/2(90 天)不在场的学生。可能有一个学生上了 5 所学校,每所学校有几天,一个学生最多可能上学 89 天。所以不管一个学生上了多少天学校,我都想把他和他上过的学校联系起来最多。至于一个学生上两所学校的天数是否相同,取第一所就够了。感谢您的回复。




       DO IF  (TotalMembership_1011_sum.1 >= 90).
          RECODE SchCode_1011.1 (21 thru 93=Copy) INTO PrimarySchool_1011.
        END IF.
        VARIABLE LABELS  PrimarySchool_1011 'primary school 2010-11 (90+ days membership)'.
        EXECUTE.



试试这个:

compute PrimarySchool_1011=0.
compute MaxEnroll=max(Membership_1011_1 to Membership_1011_5).
do repeat days=Membership_1011_1 to Membership_1011_5/code=SchCode_1011_1 to SchCode_1011_5.
      if PrimarySchool_1011=0 and days>=90 and days=MaxEnroll PrimarySchool_1011=code.
end repeat.
execute.
VARIABLE LABELS  PrimarySchool_1011 'primary school 2010-11 (90+ days membership)'.

一些注意事项:

  1. 根据你的解释,我不确定 90 天的门槛应该是多少 予以实施。在这种语法中,我所做的是将行从 比赛如果 none 的学校有 90 天或更长时间 (PrimarySchool_1011 得到的值为 0)。如果你需要什么 不同请解释。
  2. 您需要决定在两所学校共享资源的情况下该怎么做 最大天数。上面的语法将选择第一个 出现次数最多。相反,如果您想选择 最后一次出现你可以使用它而不是重复循环中的行:
    if days>=90 and days=MaxEnroll PrimarySchool_1011=code.
  3. 使用 "TO" 约定(如 SchCode_1011_1 TO SchCode_1011_5)仅当这些变量是连续的时才有效 在文件中订购。如果他们不是,请说出他们所有的名字 相反。