1

SPSS 20 を使用しています。私のデータセットには、数値に再コード化する文字列変数のリストがあります。もともと私はそれらを自分自身に再コード化したかった. SPSS はケースごとにデータセットを実行し、1 つの変数は一度に 1 つの型しか持てないため、これは不可能であることに気付きました。したがって、それらを新しい変数に再コード化したいのですが、接尾辞_rec.

DO REPEAT var = var_1 var_2 ... var_n.
  RECODE var (CONVERT) INTO var_rec.
END REPEAT. 

ただし、これにより、var_rec複数の新しい変数ではなく、1 つの新しい変数のみが作成されます。

また、回避策をプログラムしようとしました:

COMPUTE Job_2
STRING Job(A20)
    DO REPEAT var = var_1 var_2 ... var_n.
COMPUTE var = Job. 
RECODE Job (CONVERT) INTO Job_2.
DELETE VARIABLES var.
COMPUTE var = Job_2.  
END REPEAT. 

ただし、ループDELETE VARIABLES内で使用できないため、これは機能しません。DO REPEAT

だから私は元の質問に戻ります。

4

1 に答える 1

0

あなたはそれら(文字列変数)をそれ自体に再コード化することはできないと言いますが、それらは使用できますALTER TYPE

ALTER TYPE var_1 var_2 var_3 (F8.2). 

ここで、F8.2 は幅 8 で小数点以下 2 桁の数値変数です。

DO REPEAT次のように、変数の複数のスタンドイン リストを使用できます。

DO REPEAT Old = var_1 var_2 var_3
    /New = var1_rec var2_rec var3_rec.
  RECODE Old (CONVERT) INTO New.
END REPEAT PRINT. 

展開されたものは次と同等です:

RECODE var_1 (CONVERT) into var1_rec.
RECODE var_2 (CONVERT) into var2_rec.
RECODE var_3 (CONVERT) into var3_rec.

ただし、それを行う場合は、RECODEコマンド内で直接これを行うことができます。次のようになります。

RECODE var_1 var_2 var_3 (CONVERT) INTO var1_rec var2_rec var3_rec.

どちらの方法でも、元の変数はすべて文字列変数 (任意の異なる幅) であると想定しています。

関数が正確に何をするかに注意してくださいCONVERT 。つまり、文字列変数 (文字列として格納された数値を含む) を取得し、それを数値形式の変数に変換します。したがって、入力変数は常に文字列で、出力は数値です。

于 2015-08-03T11:25:33.537 に答える