首页 > 解决方案 > 使用特定代码保留所有 ID 的所有记录

问题描述

考虑以下数据示例:

clear

input id code cost
1 15342 18
2 15366 12
1 16786 32
2 15342 12
3 12345 45
4 23453 345
1 34234 23
2 22223 12
4 22342 64
3 23452 23
1 23432 22
end

如何保留15324任何行中包含代码的 ID 的所有记录?

这是我之前的一个问题的后续问题:保留特定 ID 的所有记录

标签: stata

解决方案


以下对我有用:

clear

input id code cost
1 15342 18
2 15366 12
1 16786 32
2 15342 12
3 12345 45
4 23453 345
1 34234 23
2 22223 12
4 15342 64
3 23452 23
1 23432 22
end

bysort id (code): egen tag = total(inlist(code, 15342))
keep if tag

结果:

list, sepby(id)

     +-------------------------+
     | id    code   cost   tag |
     |-------------------------|
  1. |  1   15342     18     1 |
  2. |  1   16786     32     1 |
  3. |  1   23432     22     1 |
  4. |  1   34234     23     1 |
     |-------------------------|
  5. |  2   15342     12     1 |
  6. |  2   15366     12     1 |
  7. |  2   22223     12     1 |
     |-------------------------|
  8. |  4   15342     64     1 |
  9. |  4   23453    345     1 |
     +-------------------------+

请注意,为了更好地说明,我稍微更改了数据示例。


推荐阅读