09月≪ 2017年10月 ≫11月

12345678910111213141516171819202122232425262728293031
2017.10/21(Sat)

更新しながらファイル結合

いままでSPSSでのファイル結合についていくつか書いてきた。

SPSSでは新しい変数の結合や新しいケースの結合については可能だ。

しかし、すでにある変数について、値があるところは元のファイルの値を
そのままにして、値がないところだけ結合ファイルの新しい値に更新したい
場合にはどうすればよいかわからなかった。IF文を使えばとかいろいろ考えたが、
Stataなら簡単だということがわかった。

Stataならファイル結合にもいろいろなオプションが使え、もとのファイルの欠損値の
ところだけ、新しい結合ファイルの値に置き換えられる。

こんな感じ。
merge 1:1 対応キー変数名 using "結合するファイル.dta", nogenerate update
スポンサーサイト
04:19  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2017.09/12(Tue)

StatTransfer13でStata Version14で出力するには

unicode対応の処理でSPSSファイルをStataファイルに変換できるけれども、やはり面倒。

そこで、StatTransferという変換ソフトを購入してみた。

実行してみるとSPSSからStataファイルに変換できるけれども、出力のStataが
Version13と表示されるし、変換後の変数名がV付きの名前に変わってしまっている。

問い合わせてみた結果、OprionsタブからOutput Oprions(1)を選択し、Stata version14
を選択すればよいことがわかった。

結果はスムーズに日本語に変換された。
15:46  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2017.02/09(Thu)

STATASTANで大苦戦

STATAには組み込みのベイズプログラムがあるが、STATASTANというインターフェースを
利用してはやりのベイズMCMCプログラムSTANが使える。

STANはG++でプログラムをコンパイルして動くので高速ということなのだが、これがいくら
やってもエラーでうまく動かない。ここ2~3日苦しんでいてようやく原因が判明。

エラーを追いかけて、存在しないとか言われたファイルを見てみると、拡張子が
hppとなるところが0000644となっていたり、ファイル名の最後が00644とか、
拡張子が消えていたりというファイルがごっそりでてきた。

なぜ、0000644という数字になるのかよくわからないが、どうも元々のファイルが
壊れていると言うよりも、ファイルを解凍する際に壊れてしまったらしい。

こんなことは初めてで原因をつかむのに苦労した。現在、再解凍したりチェックの最中。
18:00  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2017.02/07(Tue)

RStudioとSTATA

RStudioを触っていたらSPSSやEXCELからデータをインポートできるだけではなく、
STATAからもメニューから直にインポートできることに気がついた。

ただ、パスに日本語があるとエラーになるのでデータの置き場所だけは変更して
おく必要がある。
15:24  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2016.12/06(Tue)

STATA: 度数分布表で度数の降順でソートして表示

度数の出力で降順に並べたい場合は一元配置表の「度数に関して降順で表示する」に
チェックを入れれば良い。

コマンドでは「sort」をカンマで区切って付け加える。

. tabulate 変数1 ,sort
18:22  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2016.12/06(Tue)

STATA:結果出力が長くて見られない

STATAで長い結果出力をだして、スクロールして前の方を見ようとしたら、あるところまでで
それ以上スクロールできない。

結論からいえば、仕様のようだ。

長い出力はログファイルとして保存しておけということらしい。

やり方はメニューの「ファイル」から「ログ」「開始」としてファイル名を指定するだけ。
他愛のない話だが、他のソフトから移ってくるとこんなところでも戸惑う。
18:17  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2016.12/06(Tue)

STATA:クロス表で%を出力

STATAでクロス表を作成するには度数分布表で二元配置の表とすればよい。

ところでSPSSならクロス集計表で行、列、全体についてパーセントのチェックを
いれることができ、度数や期待度数に加えて%を出せた。

ところがSTATAにはパーセントという表記が見当たらない。ネットで調べて
tabulate 変数1 変数2, cell row cplumn
のように ,cell 」に続けて行ならrow、列ならcolumnをつければよいことを知る。

しかし、コマンドではなくメニューでできないのはどうかと思っていたらできた。

度数分布表で二元配置の表、その中にある「列内の相対度数」「行内の相対度数」に
チェックを入れればよい。

相対度数という訳語?がどうかとも思うのだが、パーセントとした方がわかりやすいはず。
18:11  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2016.11/28(Mon)

SPSSからSTATA: SELECT IF

SPSSからSTATAに移行して、戸惑うのは「SELECT IF」だろう。

ある条件のデータに絞って分析するのはよくあるので、STATAにもSPSSの「SELECT IF」文に
相当するコマンドがあると思って探してもみつからない。

結局、以下のHPをみつけた。

http://www.ats.ucla.edu/stat/stata/faq/spss_command_to_stata.htm

結論から言えば、「SELECT IF」はない。かわりに「keep」か「drop」
を使う。「keep」なら残す・保持するで「drop」なら除くというわけ。

keep if (VAR == 3)

とすれば、VARの値が3のデータだけを分析できる。
17:16  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2016.09/10(Sat)

STATAで日付を抽出

日付変数から年だけを抽出する必要に迫られた。これがとても簡単。
year( )で日付変数をくくればよい。

gen 西暦 = year(日付変数)

月や日も以下の通り。

gen 月 = month(日付変数)

gen 日 = day(日付変数)

23:29  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2016.09/10(Sat)

STATA の more を抑制

STATAの出力はテキストで、ページ区切りのように more でいったん止まる。

これを一気に出力させるには
set more off
と打ち込んで実行すれば良いというのは調べるとすぐわかる。ちなみにこれは大文字小文字を区別するようだ。

ただ、毎回、これを打ち込むのは面倒。いろいろ探したがメニューから制御するコマンドを
見つけられない。なぜ入れておかないのだろう。

結局、以下で解決。
set more off, permanently
23:24  |  STATA  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
 | BLOGTOP |  NEXT