楼主: 天斯吾下
6573 7

[数据管理求助] 如何按国家给公司分组,group不能与by连用 [推广有奖]

  • 7关注
  • 4粉丝

已卖:11份资源

副教授

53%

还不是VIP/贵宾

-

威望
0
论坛币
1176 个
通用积分
87.5911
学术水平
8 点
热心指数
14 点
信用等级
7 点
经验
92 点
帖子
443
精华
0
在线时间
713 小时
注册时间
2013-3-6
最后登录
2021-7-19

楼主
天斯吾下 学生认证  发表于 2015-3-23 16:06:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
by country: egen company=group(Companyname)
egen ... group() may not be combined with by
r(190);


bysort country: egen company=group(Companyname)
egen ... group() may not be combined with by
r(190);


而且不能help group

help for group not found
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
search for group                                                                                                                                                                                                      (manual:  [R] search)
-------------------------------


二维码

扫码加我 拉你入群

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

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

关键词:Group combined company Country combine 国家 如何

沙发
SpencerMeng 在职认证  发表于 2015-3-24 09:24:01
楼主,您好。

by和group确实不能在一起连用,而且您help group也没用,因为group不是单独的命令,而是经常egen连用。

我不清楚您的具体数据,就您以下小例子做个参考,希望您能从中有所得。
  1. sort country firm year
  2. egen t=tag(country firm) //help egen: tag may not be combined with by.  
  3. by country: egen num=sum(t) //help egen有很多例子
复制代码

藤椅
天斯吾下 学生认证  发表于 2015-3-24 15:33:13
SpencerMeng 发表于 2015-3-24 09:24
楼主,您好。

by和group确实不能在一起连用,而且您help group也没用,因为group不是单独的命令,而是经 ...
首先非常感谢您的回答,我的需求差不多就是这个意思,但是这个代码还有一点小瑕疵

countryname = 巴巴多斯

    Variable |       Obs        Mean    Std. Dev.       Min        Max
-------------+--------------------------------------------------------
         num |        80           8           0          8          8

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-> countryname = 巴布亚新几内亚

    Variable |       Obs        Mean    Std. Dev.       Min        Max
-------------+--------------------------------------------------------
         num |        80           8           0          8          8

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-> countryname = 巴哈马

    Variable |       Obs        Mean    Std. Dev.       Min        Max
-------------+--------------------------------------------------------
         num |        90           9           0          9          9

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-> countryname = 巴基斯坦

    Variable |       Obs        Mean    Std. Dev.       Min        Max
-------------+--------------------------------------------------------
         num |      3430         343           0        343        343

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-> countryname = 巴拉圭

    Variable |       Obs        Mean    Std. Dev.       Min        Max
-------------+--------------------------------------------------------
         num |       300          30           0         30         30
这样得到的结果只是统计了每个国家到底有几个公司,我想给这些公司编号。这是一个十年的面板数据。

板凳
SpencerMeng 在职认证  发表于 2015-3-24 15:52:15
天斯吾下 发表于 2015-3-24 15:33
首先非常感谢您的回答,我的需求差不多就是这个意思,但是这个代码还有一点小瑕疵

countryname = 巴巴 ...
楼主,您好,代码是可以用呢。

我给您附上数据例子吧。如果还不能解决您的实际问题,请您上传您的dta数据。
  1. clear
  2. input year str5 country str5 companyname
  3. 2000 uk a1
  4. 2000 usa a2
  5. 2000 chn a3
  6. 2001 uk a1
  7. 2001 usa a2
  8. 2001 chn a3
  9. 2002 uk a1
  10. 2002 usa a2
  11. 2002 chn a3
  12. end

  13. sort country companyname year
  14. egen t=tag(country companyname) //每个国家这三年内公司数量
  15. by country: egen num=sum(t)
复制代码

报纸
天斯吾下 学生认证  发表于 2015-3-24 23:54:48
SpencerMeng 发表于 2015-3-24 15:52
楼主,您好,代码是可以用呢。

我给您附上数据例子吧。如果还不能解决您的实际问题,请您上传您的dta数 ...
您给出的例子中每个国家每个年度只有一家公司,我的数据中有很多家公司 sample.dta (3.18 MB)



地板
SpencerMeng 在职认证  发表于 2015-3-26 09:35:35
天斯吾下 发表于 2015-3-24 23:54
您给出的例子中每个国家每个年度只有一家公司,我的数据中有很多家公司
您好,我把例子改下就行了uk三年有三个国家,chn三年都是一个国家,usa三年有两个国家。

其中的tag就相当于group了,您请看新变量num的数值就清楚了。
  1. clear
  2. input year str5 country str5 companyname
  3. 2000 uk a1
  4. 2000 usa a2
  5. 2000 chn a3
  6. 2001 uk a5
  7. 2001 usa a7
  8. 2001 chn a3
  9. 2002 uk a6
  10. 2002 usa a2
  11. 2002 chn a3
  12. end

  13. sort country companyname year
  14. egen t=tag(country companyname)  
  15. by country: egen num=sum(t)
复制代码

7
SpencerMeng 在职认证  发表于 2015-3-26 09:38:05
天斯吾下 发表于 2015-3-24 23:54
您给出的例子中每个国家每个年度只有一家公司,我的数据中有很多家公司
如果还不能解决您的问题,请您用code写出您数据例子的特征,用最短的数据呈现您原始数据的特点,ps:毕竟看您的数据还需要一定的时间消化。

然后再把您想要的结果,用数据呈现出来,毕竟大段文字说起了也不方便和直观。

8
天斯吾下 学生认证  发表于 2015-3-26 12:58:36
SpencerMeng 发表于 2015-3-26 09:38
如果还不能解决您的问题,请您用code写出您数据例子的特征,用最短的数据呈现您原始数据的特点,ps:毕竟 ...
QQ图片20150326124930.png Q0326124935.png 变量number就是我想要的结果,这个例子里我是用手输入的。number代表了每个国家的公司数,在年度上没有变化,之前我的表述确实存在问题,十分抱歉

sample2.zip
下载链接: https://bbs.pinggu.org/a-1755693.html

1.05 KB

stata12创建的dia

本附件包括:

  • sample2.dta

sample2.zip

1.25 KB

stata13创建的dta

本附件包括:

  • sample2.dta

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

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