私は、サンプル構築中に落とした観測数を記録する自動Excelファイルを作成しようとしています。putexcelと単純なプログラムを使用しています。Stataプログラミングとputexcelループ
私はプログラミングには新しく、以下のプログラムは仕事をしています。 1)観測数の減少、2)観測データの欠落、3)データセットに残った観測数、4)観測結果を削除する理由を説明する文字列が表示されます。
結果をExcelにエクスポートするには、putexcelコマンドを使用します。これはうまくいきます。問題は、私がdofileに何度も観測を落とす必要があることと、putexcelの部分を何らかの形でプログラムに組み込んで、それをセルの上にループさせることができるかどうかということでした。
つまり、最初にA1に、2回目にA8に自動的に説明($ why)を保存するプログラムが必要です。
は、私は以下の私のコードの例を提供しています
** Generate some data:
clear
input id year wage
1 1 200
1 2 250
1 3 300
2 1 152
2 2 150
2 3 140
3 1 300
3 2 320
3 3 360
end
** Define program
cap program drop dropdata
program define dropdata
count
global N = r(N)
count if `1'
global drop = r(N)
global share = ($drop/$N)
drop if `1'
count
global left = r(N)
global why = "`2'"
end
** Drop if first year
dropdata year==1 "Drop if first year"
** Export to excel
putexcel set "documentation.xlsx", modify
putexcel A1 = ("$why")
putexcel A3 = ("Obs. dropped") A4 = ("Share dropped") A5 = ("Observations left")
putexcel B3 = ($drop) B4 = ($share) B5=($left)
** Now drop if wage is < 300
dropdata wage<300 "Drop if wage<300"
putexcel A8 = ("$why")
putexcel A10 = ("Obs. dropped") A11 = ("Share dropped") A12 = ("Observations left")
putexcel B10 = ($drop) B11 = ($share) B12 = ($left)