我有一个包含多个子组(变量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
谢谢,但我不明白什么是行不通的。您没有显示任何数据或您自己的代码进行检查。 –