我有一個包含多個子組(變量economist
)和日期(變量temps99
)的數據集。 我想運行一個不接受bysort
或by
前綴的命令tabsplit
。多個本地foreach命令宏
所以我創建了一個宏來我的數據中我tabsplit
命令適用於我的每一個分組,例如:
levelsof economist, local(liste)
foreach gars of local liste {
display "`gars'"
tabsplit SubjectCategory if economist=="`gars'", p(;) sort
return list
replace nbcateco = r(r) if economist == "`gars'"
}
每個小組的Stata跑tabsplit
命令,我使用變量nbcateco
存儲計數結果。
我也做了同樣的日期,所以我可以有r(r)
的隨時間的變化:
levelsof temps99, local(liste23)
foreach time of local liste23 {
display "`time'"
tabsplit SubjectCategory if temps99 == "`time'", p(;) sort
return list
replace nbcattime = r(r) if temps99 == "`time'"
}
現在我想按日期temps99
做每個分組economist
。我嘗試了多種組合,但我對宏不太好(還沒有?)。
我想要的是能夠爲我的每個小組提供我的r(r)
隨着時間的推移。
我也對tabsplit結果感興趣,這也是我使用它的部分原因。我嘗試使用像你所建議的變量NC類,但如果我沒有弄錯,這給了我多少類別的計數。我感興趣的是不同類別的計數(爲什麼SubjectCategory有用)。 你的最後一個建議正在工作,儘管我有一些可能只有很少觀察數據的子數據集給我提供了錯誤:'指定的變量太少'。問題是它會中斷宏。 謝謝你在包裝上的工作。 – Homard
謝謝,但我不明白什麼是行不通的。您沒有顯示任何數據或您自己的代碼進行檢查。 –