【发布时间】:2019-07-09 11:30:30
【问题描述】:
我想创建一个新变量来计算指定药物代码在 27 列中的所有出现次数。但是,我想对所有可用的药物代码执行此操作。我正在使用循环和egen 函数anycount()。
但是,当我尝试运行它时,我得到了错误:
名称无效
r(198);
您可以在下面找到我的数据示例:
clear
input DrugList Drug1 Drug2 Drug3 Drug4 Drug5
1234 7934 1234 . . .
5678 1234 5678 . . .
9876 9876 3456 . . .
3456 9876 . . . .
7934 9876 5678 7934 1234 .
17453 5678 . . . .
end
我使用的代码如下:
levelsof DrugList
foreach drug in `r(levels)'{
egen d_`drug' = anycount(Drug1-Drug27), values(`drug')
}
我期望的输出是这样的:
+------------------------------------------------------+
| d_1234 d_3456 d_5678 d_7934 d_9876 d_17453 |
|------------------------------------------------------|
| 1 0 0 1 0 0 |
| 1 0 1 0 0 0 |
| 0 1 0 0 1 0 |
| 0 0 0 0 1 0 |
| 1 0 1 1 1 0 |
| 0 0 1 0 0 0 |
+------------------------------------------------------+
如果我在没有循环的情况下运行特定代码的代码,那么一切正常:
egen d_1234 = anycount(Drug1-Drug27), values(1234)
我做错了什么?
【问题讨论】: