2016-08-01 1 views
2

生徒が関連する小学校を示す変数を作成する必要があります。私は各生徒のために1年間に5つの学校変数があります。最初の学校変数には、学生の5桁の学校コードが常に入力されます。 1人の学生が1年に5つの学校に通った場合、5つの変数すべてが設定されます。彼らが1つの学校に通っている場合は、最初の変数のみが入力されます。私はまた、各学校に生徒がいた日数(最大180)に対応する変数を持っています。学校年のほとんどに出席した学校の5桁の学校コードの変数が必要です。彼らが1つの学校にのみ出席した場合、出席日数にかかわらず、関連する学校でなければなりません。この変数を作成するためにDO IFコマンドとループを使用できますか?以下の構文は最初の学校のみであり、非効率的であり、90日の閾値を下回っている(つまり、1つの学校に90日未満の間しか通っていない)学生を捉えていないため、かなりありません。SPSSの最大値との関連付けを保持する変数を作成

更新8/2:私は実際には、今年の半分(90日)存在しない学生を捉える必要があります。 5つの学校に通っている学生がいるかもしれません。それぞれ数日で、おそらく最大で89人です。学生が学校に通った日数に関わらず、彼が出席した学校に彼を関連づけたい最も。学生が同じ日数で2つの学校に通ったかどうかについては、最初のものを取るだけで十分です。あなたの返事をありがとう。




     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. 



答えて

0

これを試してみてください:

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日のしきい値が 実装する方法をご説明からわかりません。この文法で、私がしたことは、いずれの学校にも90日以上がない場合、 のゲームからラインを取り除くことです。 (PrimarySchool_1011は0の値を取得します)。何か必要があれば 別途ご説明ください。
  2. 2つの学校が最大日数を共有する場合には、何をすべきかを決める必要があります。上記の構文では、最初に の最大数が選択されます。これらの変数は連続 をしている場合にのみ動作します(SchCode_1011_1 TO SchCode_1011_5のように)「TO」規則を使用して
    if days>=90 and days=MaxEnroll PrimarySchool_1011=code.
  3. :代わりにあなたが 最後に出現を選択したい場合は、代わりに繰り返し行うループ内の行のこれを使用することができますファイル内で順序付けられます。そうでない場合は、代わりにすべての名前を としてください。
関連する問題