makefile を使用して、テキスト ファイルや他のデータセットなどで動作する複数の Stata ファイルを実行しています。依存関係を変更しなくても、make を実行するたびに が実行されます。analysis.do
メイクファイルは次のとおりです。
.PHONY: clean spotless
STATACOMMAND=/opt/stata/stata-mp -b
analysis.txt: analysis.do uniform.dta normal.dta
$(STATACOMMAND) analysis.do
uniform.dta: uniform.do
$(STATACOMMAND) uniform.do
normal.dta: normal.do noise.txt
$(STATACOMMAND) normal.do
clean:
-rm *.log
spotless: clean
-rm analysis.txt
-rm *.dta
分析を行う
use normal.dta, clear
merge t using uniform.dta
log using analysis.txt, text
regress norm unif
log close
正常です。
clear
insheet using "noise.txt", clear
gen t = _n
gen norm = rnormal()
sort t
save normal.dta, replace
制服を着る
clear
set obs 10
gen t = _n
gen unif = runiform()
sort t
save uniform.dta, replace
ノイズ.txt
noise
14
49
59
63
55
13
60
54
26
39
私の実際のコードには、この問題を示すファイルがもっとたくさんありますが、この簡単な例が少なくとも問題を絞り込むのに役立つことを願っています。
更新: ファイルの変更時間は何らかの形で更新されていませんか? make -d
makefile を実行するたびに、最後に次のメッセージが表示されます。
Finished prerequisites of target file `analysis.txt'.
Prerequisite `analysis.do' is older than target `analysis.txt'.
Prerequisite `uniform.dta' is newer than target `analysis.txt'.
Prerequisite `normal.dta' is newer than target `analysis.txt'.
Must remake target `analysis.txt'.
別の例を次に示します。私がmake
数回走ったとしましょう。ファイルの変更時間は次のとおりです。
-rw-r--r-- 1 ricardo ricardo 105 Mar 1 19:25 analysis.do
-rw-r--r-- 1 ricardo ricardo 1.1K Mar 2 13:26 analysis.log
-rw-r--r-- 1 ricardo ricardo 1.5K Mar 1 19:25 analysis.txt
-rw-r--r-- 1 ricardo ricardo 317 Mar 1 19:41 makefile
-rw-r--r-- 1 ricardo ricardo 36 Mar 1 19:34 noise.txt
-rw-r--r-- 1 ricardo ricardo 103 Mar 1 19:33 normal.do
-rw-r--r-- 1 ricardo ricardo 803 Mar 1 19:38 normal.dta
-rw-r--r-- 1 ricardo ricardo 1007 Mar 1 19:38 normal.log
-rw-r--r-- 1 ricardo ricardo 83 Mar 1 19:28 uniform.do
-rw-r--r-- 1 ricardo ricardo 594 Mar 1 19:38 uniform.dta
-rw-r--r-- 1 ricardo ricardo 991 Mar 1 19:38 uniform.log
再び走った後make
、ここに時間があります。Stata によって自動的に生成されるファイルを除いて、時間は変わりません。.log
-rw-r--r-- 1 ricardo ricardo 105 Mar 1 19:25 analysis.do
-rw-r--r-- 1 ricardo ricardo 1.1K Mar 2 13:29 analysis.log
-rw-r--r-- 1 ricardo ricardo 1.5K Mar 1 19:25 analysis.txt
-rw-r--r-- 1 ricardo ricardo 317 Mar 1 19:41 makefile
-rw-r--r-- 1 ricardo ricardo 36 Mar 1 19:34 noise.txt
-rw-r--r-- 1 ricardo ricardo 103 Mar 1 19:33 normal.do
-rw-r--r-- 1 ricardo ricardo 803 Mar 1 19:38 normal.dta
-rw-r--r-- 1 ricardo ricardo 1007 Mar 1 19:38 normal.log
-rw-r--r-- 1 ricardo ricardo 83 Mar 1 19:28 uniform.do
-rw-r--r-- 1 ricardo ricardo 594 Mar 1 19:38 uniform.dta
-rw-r--r-- 1 ricardo ricardo 991 Mar 1 19:38 uniform.log
これが問題でしょうか?