*Stata [#oa4bb7d4]

Ver.18が出ている。

Ver.14が出ている。
-新機能 http://www.lightstone.co.jp/stata/stata14_new.htm

#contents

**条件文の書き方 [#dcc9c369]
|意味|記号|
|等しい|==|
|等しくない|!=|
|等しくない|半角で〜=|
|以上|>=|
|以下|<=|
|かつ|&|
|または|半角で||

・・・if hoge == 1 の「==1」は省略できるらしい。


**変数の操作 [#j2a1e955]
-変数の作成


-sum関数の利用
 gen 【新しい変数】=sum(【利用する変数】)
#br
 例)gen var2=sum(var1) 
「gen」では上からその値までの合計値が入るが、全体の合計値を入れたい場合には「egen」を利用する。
 例)egen var3=sum(var1) 
|var1|var2|var3|
|1|1|6|
|2|3|6|
|3|6|6|

-変数の書き換え


**文字列の操作 [#b784ad57]
-文字列から任意の文字を抽出する。
 gen str2(←この場合は2byteの文字列) 【新しい変数名】=substr(【元の変数名】,【開始文字】,【文字数】)
#br
 例)gen str6 var2=substr(var1,1,6)

-文字列を数値に変換して、元の変数を置き換える。
 destring 【変換したい変数名】, replace
#br
 例)destring var1, replace

-文字列を数値に変換した新しい変数を作る。
 destring 【元の変数名】, gen(【新しい変数名】)
#br
 例)destring var1, gen(var2)

-数値を文字列に変換して、元の変数を置き換える。
 gen 【一時的な変数名】=string(【変換したい変数名】)
 drop 【変換したい変数名】
 rename 【一時的な変数名】 【変換したい変数名】
#br
 例)gen val3=string(val2)
     drop val2
     rename val3 val2

-通し番号を振る。
 gen 【通し番号の変数名】=_n
#br
 例)gen ID=_n

-カテゴリー毎に通し番号を振る。~
 カテゴリーとなる変数についてソートを実行し、それぞれについて1から通し番号を振る。
 bysort 【カテゴリーとなる変数名】: gen 【通し番号の変数名】=_n
#br
 例)bysort year: gen ID=_n
ただし、カテゴリーとなる変数内に同じ値が複数ある場合には、それらについての順番はランダムとなる。同じ値のものたちの中での順番についてはソート前の順番と同じにしたいときは、次のようにする。
 例)sort year, stable
     by year: gen ID=_n


**繰り返し [#b59b9d80]
-区間を利用する場合
 for num 【最初】/【最後】: 【プログラム:「X」のところに区間の数字が順に代入される】
#br
 例)for num 3/10: replace valX=0 if valX==.

-区間を利用する場合(複数のプログラム)
 forvalues 【任意の文字】 = 【最初】/【最後】 {
 【プログラム:「`【任意の文字】'」のところに区間の数字が順に代入される】
       ・
       ・
       ・
 【プログラム】
 }
#br
 例)forvalues i = 3/10 {
     replace val`i'=0 if val`i'==.
     replace val99 = 1 if val0==`i'
     }

-文字を利用する場合
 foreach 【任意の文字】 in 【文字1】 【文字2】 ・・・ {
 【プログラム:「`【任意の文字】'」のところに【文字1】から順に代入される】
       ・
       ・
       ・
 【プログラム】
 }
#br
 例)foreach x in ID Year Date {
     replace `x'=0 if `x'==.
     replace val99 = 1 if val0=="`x'"
     }
 例)foreach i in 2 5 17 {
     replace val`i'=0 if val`i'==.
     replace val99 = 1 if val0==`i'
     }
上記は、次のように記述しても同じである(上が「varlist」で、下が「numlist」となることに注意。)。
 例)foreach x of varlist ID Year Date {
     replace `x'=0 if `x'==.
     replace val99 = 1 if val0=="`x'"
     }
 例)foreach i of numlist 2 5 17 {
     replace val`i'=0 if val`i'==.
     replace val99 = 1 if val0==`i'
     }
頭文字で共通する変数列(「val1,val2,val3」や「x1,x11,x100」など)を選ぶ方法 ※一つだの変数(「ID」など)も並記できる。
 例)foreach x of varlist var* x* ID {
     replace val`x'=0 if val`x'==.
     replace val99 = 1 if val0==`x'
     }

***平均の表を作成 [#mefec9ab]
タイプ2に関係する変数hogehogeの平均の表を作成する。
 table gyou retsu if type==2, contents(mean hogehoge)


**データの結合 [#lfac481f]
-データが一部しか共通しない場合(※もちろん全てが共通していても使える)~
 主データと追加データに共通する変数については、(「update」オプションを付けない場合には)主データが採用される。空白(欠損値)の部分であっても主データが優先される。~
 「update」オプションを付けると、空白(欠損値)の場合のみ追加データの値が採用される。
 use 【追加データ】
 sort 【両データで共通する変数名】
 save 【追加データ】
 clear
 use 【主データ】
 sort 【両データで共通する変数名】
 merge 【両データで共通する変数名】 using 【追加データ】, update
#br
 例)use data2.dta
     sort ID
     save data2.dta
     clear
     use data1.dta
     sort ID
     merge ID using data2.dta, update
#br
「update」オプションを利用しない場合には、次のように省略して記述できる。
 例)use data2.dta
     sort ID
     save data2.dta
     use data1.dta, clear
     merge ID using data2.dta, sort

-3つ以上のデータを結合する。
 use 【追加1データ】
 sort 【3つのデータで共通する変数名】
 save 【追加1データ】
 clear
 use 【追加2データ】
 sort 【3つのデータで共通する変数名】
 save 【追加2データ】
 clear
 use 【主データ】
 sort 【3つのデータで共通する変数名】
 merge 【3つのデータで共通する変数名】 using 【追加1データ】, update
 drop _merge
 sort 【3つのデータで共通する変数名】
 merge 【3つのデータで共通する変数名】 using 【追加2データ】, update
 drop _merge
#br
 例)use data2.dta
     sort ID
     save data2.dta
     clear
     use data3.dta
     sort ID
     save data3.dta
     clear
     use data1.dta
     sort ID
     merge ID using data2.dta, update
     drop _merge
     sort ID
     merge ID using data3.dta, update
     drop _merge
#br
「update」オプションを利用しない場合には、次のように省略して記述できる。
 例)use data2.dta
     sort ID
     save data2.dta
     use data3.dta, clear
     sort ID
     save data3.dta
     use data1.dta, clear
     merge ID using data2.dta, sort
     drop _merge
     merge ID using data3.dta, sort
     drop _merge

**Tips [#s2474fee]
-表示等の日本語化 
http://www.lightstone.co.jp/stata/ug000.htm

-log をとる。
 log using log.txt, replace text

-回帰結果の表をtex形式にする(要[[outtex.ado>http://ideas.repec.org/c/boc/bocode/s420101.html]])。
 outtex, level detail

-表をtex形式にする。
 latab var_name if jogai == "n" & group=="G" & sp==1

-数値にlabelを付ける。
 label define new_var_name 0 "0\%" 1 "0\%-16.7\%" 2 "16.7\%-33.3\%" 3 "33.3\%-50\%" 4 "50\%-"
 label values var_name new_var_name

-トービット分析の例
 tobit offer_rate sp yd r2 r3 if jogai == "n" & group=="G" & member == 1 , ll(0) ul(1)

**パネル [#xe31cc19]
[[別ページ>Stata/パネル]]にまとめる。


**オンライン・マニュアル類 [#td5f4d37]
-Stataの「使える」adoファイル 
http://homepage3.nifty.com/sociology/index_folder/stata_ado.html
-統計パッケージメモ 
http://www.kagitaku.com/play/stats-package.php
-R and Stata Handouts 
http://www.stat.uchicago.edu/~collins/resources/handouts.html
-Stata......φ(..`o)memo 
http://statamemo.jugem.jp/
-他人のコンテンツを勝手に用途順に並べ替えてみるテスト(STATAの細かいtips) 
http://d.hatena.ne.jp/sdmt/20061106/1162633144

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

G|Cg|C@Amazon Yahoo yV

z[y[W yVoC[UNLIMIT1~] COiq COsI