07月≪ 2016年08月 ≫09月

12345678910111213141516171819202122232425262728293031
2016.08/14(Sun)

SPSSからSTATAへの欠損値変換

さて、SPSSのデータファイルをSPSSからSTATA8の形式で保存。

次にSTATAから文字コードを変換して(しないと文字化けしたデータファイルのまま)、
これで値ラベルは日本語にできる。日本語の変数名はVのついた変数名になっているので
rename V2 質問1
のように変換(Excelを利用して一気にコマンドラインから変換)。

これでほぼSPSSファイルがSTATAファイルに日本語化される。

しかし、問題がまだある。それは欠損値。STATAの欠損値はピリオド「.」で表現される。

SPSSで欠損値を事前に「.」にしておけばよさそうだが、数値変数の欠損値に「.」を指定
すると文字変数とみなされてうまくいかない。

したがって、STATAで変換する必要がある。

例えばSPSSで欠損値を「9999」「-9999」と指定していたらなら、そのままではSTATAでは
それがデータと見なされてしまう。

全ての変数で欠損値を「9999」「-9999」としていたので、以下をコマンドラインで走らせた。
mvdecode _all, mv(9999=.)
mvdecode _all, mv(-9999=.)

もし、すべての変数で欠損値を共通にしていなかったら、変数ごとに
replaceを使うことになったかも。

replace var1=. if var1==9999
replace var1=. if var1==-9999


スポンサーサイト
00:15  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2016.08/13(Sat)

STATAのユニコード変換エラー

STATAのコマンドラインから以下を入力して、ファイルをShift JISからユニコード変換しようと
したがエラー。

unicode encoding set "shift_JIS"
unicode translate ファイル名.dta

エラーはこんな感じ。
contents of variable 3 (V3) contain unconvertable characters
contents of variable 4 (V4) contain unconvertable characters

認識不能の文字キャラクタがデータセットに含まれているらしい。文字列変数で
外字とかがあるのだろう。もとのデータを作成したのは他の人なのでどんな
データがあるのか不明なので何とも言えない。

結局、以下をコマンドラインで入力して変換完了。

unicode encoding set "shift_JIS"
unicode translate ファイル名.dta, invalid(mark)

認識不能の文字キャラクタは別なモノに変換して強引に変換したということ。
23:19  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2016.08/06(Sat)

SPSSからSTATAへ

SPSSファイルからSTATAへファイル変更して気がついたこと。

欠損値をSPSSでは9999と-9999としていたのだが、STATAの欠損値は
ピリオドで、これは自動的に変換してくれないようだ。SPSSで最初から
欠損値をピリオドにしておくか、STATAで変換するかしかない。

SPSSの日付変数は、STATAに日付としては認識されないようだ。
日付は日付のフォーマットに変換されていた。上記は私の勘違い。

変数の日本化の件は前に書いたとおり。
04:32  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2016.08/06(Sat)

The Lazarus Effect

映画「ラザロ・エフェクト」が上映最終日なので観てきた。

観ていて原題が「The Lazarus Effect」だと気がつく。

ラザルスなどと呼んでいたけど、ラザロが正しいわけだ。

ラザロの意味は墓に入れられてから4日後にキリストが死から蘇らせた人物
のことらしい。

Razarusのプロジェクトもオブジェクト・パスカルの死からの復活という
意味が込められているのかとなんだか納得。
04:28  |  Delphi  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2016.08/04(Thu)

SPSSからSTATAへ変換

STATA Ver.14をインストール。

Ver.14からユニコード対応で日本語が表示できるという。
これでSPSSのデータセットをそのまま読めると喜んでいたら、世の中そんなに甘くなかった。

まず、SPSSは確かにSTATAファイルで保存できる。しかし、対応バージョンはVer.8まで。

保存してSTATAでみるとファイルができるが、日本語の変数名はVに数字付きに変更されており、
値ラベルは文字化けしている。

しかし、STATAにはSHIFT JISをUNI CODE変換できるらしい。

ということでSTATAのコマンドから
unicode encoding set "shift_JIS"
unicode translate ファイル名.dta
と入力。

ここではまりがちなミスは当該のファイルをSTATAに読み込んでいると変換できない。
ただ、STATAを立ち上げただけでファイルを開かずに上記のコマンドを入力しないといけない。

みてみると値ラベルは無事、日本語化されている。しかし、変数名はV付きの数字のまま。

変数が600個を超すと一つ一つ修正する気は起きない。そこで

1)STATAで変数一覧を出し、空白をタブに変換して、不要列を削除後Excelへ)

2)SPSSでファイル情報、変数一覧 コピーしてExcelへ。不要列削除

3)上記2つをExcelで対応するよう列に並べて確認

4)変換の必要のない変数(もともと英数半角文字)を削除

5)こうして、STATAのV番号とのSPSSの漢字変数名2列を作成

6)1列目に RENAME だけの列を作成

7)4列目に 「=A1 & B1 & C1」 の関数を作成して、下に関数貼り付けでコピーペースト
(必要なら半角空白" "を入れて変数名がくっつかないように)

8)4列目をSTATAのシンタックスに貼り付け(エディタにコピーしてからペーストが
安全か)

要は 「RENAME 元の変数名 新しい変数名」を必要分Excelで作成して
「RENAME V20 氏名」のような行を一気に実行しているだけ。

これでSPSSの日本語変数名のSTATAデータセットができた。
17:41  |  STATA  |  TB(0)  |  CM(2)  |  EDIT  |  Top↑
 | BLOGTOP |