在stata中有三列变量,第一列是id,第二列是patent,第三列是year,每一个id和year对应了不止一个patent,怎么用stata求出每一个id在对应year的patent的数量
时间: 2024-03-10 15:49:56 浏览: 185
如果您想要在 Stata 中求出每一个 `id` 在对应 `year` 的 `patent` 的数量,可以使用 `collapse` 命令和 `by` 子句。假设您的数据集包含了三个变量 `id`、`patent` 和 `year`,您希望按照 `id` 和 `year` 进行分组,并且计算每组中 `patent` 的数量,可以使用以下命令:
```
collapse (count) patent, by(id year)
```
其中,`(count)` 表示按照分组计算 `patent` 的数量,`patent` 是要计数的变量名,`by(id year)` 表示按照 `id` 和 `year` 的取值进行分组。这个命令将生成一个新的数据集,其中包含了每一个 `id` 在对应 `year` 的 `patent` 的数量。
请注意,如果您的数据集中包含了重复的 `(id, year, patent)` 三元组,那么这个命令将会对重复的三元组进行计数,并且生成一个新的数据集,其中每个 `(id, year)` 对应了不同的 `patent` 数量。如果您想要对重复的三元组进行去重,可以先使用 `duplicates drop` 命令去除重复行,例如:
```
duplicates drop id year patent, force
```
其中,`duplicates drop` 命令表示去除重复行,`id year patent` 表示要去除重复的变量,`force` 表示强制去重。这个命令将生成一个新的数据集,其中不包含重复的行,然后再使用 `collapse` 命令进行计数。
阅读全文