stata - 折叠一个变量的总和,但另一个变量的平均值
问题描述
我有以下数据集,我希望将其折叠以创建一个公司 1 - 公司 2 年级别的数据集:
clear
input str32 Firm_1 str32 Firm_2 year number_employees str32 blah1 str32 blah2 returns
"Rathon" "Hass" 2010 4000 hey hello 40
"Rathon" "Hass" 2010 6000 hey hello 20
"Rathon" "Hass" 2012 12000 money fame 10
"Rathon" "Broq" 2012 12000 dime bunk 50
"Birlar" "Goth" 2008 1000 shop ladder 30
"Birlar" "Goth" 2008 7000 shop ladder 70
end
我希望缩小最终数据集,以便每个观察代表相同firm_1
且firm_2
相同year
。因此,它将如下所示:
Firm_1 Firm_2 year number_employees blah1 blah2 returns
"Rathon" "Hass" 2010 10000 hey hello 30
"Rathon" "Hass" 2012 12000 money fame 10
"Rathon" "Broq" 2012 12000 dime bunk 50
"Birlar" "Goth" 2008 8000 shop ladder 50
但是,当我collapse
以以下方式使用时:
collapse (sum) number_employees, by ( Firm_1 Firm_2 year)
该命令删除变量blah_1
和blah_2
. 有没有办法留住他们?此外,returns
应该在折叠观察时进行平均,而不是像我们为number_employees
解决方案
这适用于您的示例:
collapse (sum) number_employees (mean) returns , by(Firm_1 Firm_2 blah* year)
list
+--------------------------------------------------------------+
| Firm_1 Firm_2 year blah1 blah2 number~s returns |
|--------------------------------------------------------------|
1. | Birlar Goth 2008 shop ladder 8000 50 |
2. | Rathon Broq 2012 dime bunk 12000 50 |
3. | Rathon Hass 2010 hey hello 10000 30 |
4. | Rathon Hass 2012 money fame 12000 10 |
+--------------------------------------------------------------+
只要您希望存在一对一的对应关系,就可以将每个组内的变量常量添加到by()
选项中。更明显的是,记录的语法允许为相同或不同的变量计算不同的统计数据。
推荐阅读
- sql - 如何在 SQL Server 表中执行此插入
- regex - 使用正则表达式拆分字符
- php - 使用 .env 配置 codeigniter 对我不起作用
- jenkins - 在声明式 Jenkins 管道中更改/排序或优先考虑构建队列
- flutter - 根据屏幕大小设置纵横比的公式是什么
- pyspark - 如何在没有所有功能的情况下创建从 Twitter 到 PySpark 的结构化流传输管道?
- geometry - 如何在Houdini中合并中心点
- javascript - React hooks useState 不更新状态
- multithreading - 如何使用单个 Heroku 应用程序部署多个电报机器人
- java - 无法从另一个容器连接到 docker 容器。(org.postgresql.util.PSQLException:连接到 localhost:5432 被拒绝)