這裏要介紹的是使用postfile
。
這是一個簡單的例子。首先,我設置了幾個數據集的示例。你已經有了這個。
clear
forval i = 1/10 {
set obs 100
gen foo = `i' * runiform()
save test`i'
clear
}
現在我成立了postfile
。我需要設置一個句柄,將使用哪些變量以及將使用哪個文件。儘管我使用數字變量來保存文件標識符,但使用字符串變量可能更典型。此外,循環播放文件名可能比這更具挑戰性。來自SSC的fs
是一種便利的命令,可以幫助將一組文件名放入本地宏;這裏沒有說明它的用法。
postfile mypost what mean using alltest.dta
forval i = 1/10 {
use test`i', clear
su foo, meanonly
post mypost (`i') (`r(mean)')
}
現在刷新結果
postclose mypost
,看看我們有什麼。
u alltest
list
+-----------------+
| what mean |
|-----------------|
1. | 1 .5110765 |
2. | 2 1.016858 |
3. | 3 1.425967 |
4. | 4 2.144528 |
5. | 5 2.438035 |
|-----------------|
6. | 6 3.030457 |
7. | 7 3.356905 |
8. | 8 4.449655 |
9. | 9 4.381101 |
10. | 10 5.017308 |
+-----------------+
這裏我沒有使用任何全局宏(不是全局變量)你不需要。
非常感謝...我嘗試過......但仍然得到'發佈mypost找不到'。我試着創建'mypost.dta' ...仍然是同樣的錯誤。是'mypost.dta'的目標文件嗎? – Buras
你將不得不發佈你試過的代碼。否則,我只能建議你有一個語法錯誤。 –
我已經添加了我在上面的問題中嘗試的代碼...佈局在評論部分不好... – Buras