在Stata中,你可以使用`egen`命令来创建新的一列,该列是对某个变量按照另一个变量的分组进行汇总。在这个问题中,你想要对 `commodityc` 中相同值的 `step1` 进行求和。
这里是如何做的步骤:
首先确保你的数据是按 `commodityc` 排序的(虽然这不是必需的,但是好的实践):
```stata
sort commodityc
```
然后使用 `egen` 命令创建新的变量,这个新变量会包含每个 `commodityc` 的值对应的 `step1` 求和结果。假设我们把这个新的变量命名为 `sum_step1`。
这是命令的样子:
```stata
egen sum_step1 = sum(step1), by(commodityc)
```
但是请注意,上面的命令实际上会在每一行都放置当前组(由`commodityc`定义)的所有值的累积和。如果你只想要每个组的总和并且每个组只出现一次,则可能需要先使用 `bysort` 命令:
```stata
bysort commodityc (sum_step1): keep if _n == 1
```
这会保留每组的第一个观测值,并删除其他重复项。然而,一个更简洁的方法是直接在 `egen` 后面使用 `group()` 函数来指定分组变量,然后将结果存储在一个新的变量中:
```stata
bysort commodityc: egen sum_step1 = total(step1)
```
这样,`sum_step1` 变量就会包含每个 `commodityc` 值对应的 `step1` 的总和。确保在使用 `bysort` 之前对数据进行了排序。
如果你想要保留所有行,并且在每个相同的 `commodityc` 下有该组的求和结果,那么只需要使用初始的 `egen` 方法:
```stata
egen sum_step1 = total(step1), by(commodityc)
```
这样处理后,`sum_step1` 列将显示与 `commodityc` 中每个唯一值相关的 `step1` 的总和。
此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用