12066 6

[一般统计问题] stata 同时满足两个条件的分组求和 怎么做? [推广有奖]

  • 0关注
  • 0粉丝

小学生

64%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
65 点
帖子
6
精华
0
在线时间
10 小时
注册时间
2020-3-18
最后登录
2020-11-6

楼主
毕业论文杀我 发表于 2020-3-20 10:30:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如图,想先按照code和year两个条件来分组,然后实现分组求var1里数值的和
大概是sum var1 if code==2 & year==2007 这个意思
但是数据太多了不可能手动一次次分组
请问该如何解决呢?谢谢大家(救救远程在家搞毕设的孩子吧
原始数据截图

原始数据dta文件:
v0320.dta (903.4 KB)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
震震果实 发表于 2020-3-20 14:45:45
  1. sort code year
  2. bys code year:egen wanted=sum(var1)
复制代码
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
Cariky + 1 + 1 观点有启发
黃河泉 + 2 + 2 + 2 好的意见建议

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 2   查看全部评分

藤椅
黃河泉 在职认证  发表于 2020-3-21 09:25:50
震震果实 发表于 2020-3-20 14:45
建议一下,既然你已经 bysort code year,就可省略第一行之 sort code year。

板凳
震震果实 发表于 2020-3-21 09:29:41
黃河泉 发表于 2020-3-21 09:25
建议一下,既然你已经 bysort code year,就可省略第一行之 sort code year。
黄老师,之前的顺序如果是没有排好的,有时直接使用会报错,或者会出现错误的结果,原因不详。

报纸
黃河泉 在职认证  发表于 2020-3-21 09:56:43
震震果实 发表于 2020-3-21 09:29
黄老师,之前的顺序如果是没有排好的,有时直接使用会报错,或者会出现错误的结果,原因不详。
不太可能吧?底下两个是一样的!
  1. // Case 1:
  2. sort code year
  3. by code year: egen wanted=sum(var1)
  4. // Case 2:
  5. bysort code year: egen wanted=sum(var1)
复制代码

地板
黃河泉 在职认证  发表于 2020-3-21 09:57:40
震震果实 发表于 2020-3-21 09:29
黄老师,之前的顺序如果是没有排好的,有时直接使用会报错,或者会出现错误的结果,原因不详。
此外,请 help bysort,你会看到
  1. by and bysort are really the same command; bysort is just by with the sort option.
复制代码

7
赵安豆 发表于 2024-10-6 10:43:06
在Stata中,你可以使用`bysort`命令配合`egen`函数来实现按照多个条件分组并求和。下面是一个示例步骤,假设你的数据集已经载入到Stata环境中,并且命名为 `data`。

1. 首先,你需要使用`bysort`对数据进行排序:
```stata
bysort code year:
```
但通常在实际操作中,我们直接结合`egen`函数来完成整个流程:

2. 然后,你可以在排序的同时用`egen`命令对`var1`按`code`和`year`分组求和。这里使用`total()`函数:
```stata
bysort code year: egen var1_sum = total(var1)
```
这条命令会创建一个新的变量`var1_sum`,它包含了按照`code`和`year`分组的`var1`的总和。

如果数据量非常大,确保你的电脑内存足够处理这样的操作。在远程工作环境下,可能需要考虑使用服务器或优化数据加载方式来提高效率。

如果你的数据集没有排序,直接使用带有条件的`egen`命令也可以达到目的:
```stata
by code year, sort: egen var1_sum = total(var1)
```
但通常推荐先使用`bysort`进行排序,然后再运行`egen`命令,这样可以避免在大型数据集上的计算错误。

希望这能帮助你解决在家做毕业设计时遇到的问题!如果有其他疑问或需要进一步的帮助,请随时提问。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-18 14:59