楼主: Brittany1991
12648 11

[数据管理求助] 求助!!!怎样利用stata根据两个变量分组后,求出每组变量的种类数? [推广有奖]

  • 0关注
  • 1粉丝

小学生

35%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
36 点
帖子
3
精华
0
在线时间
9 小时
注册时间
2014-9-8
最后登录
2018-12-7

楼主
Brittany1991 发表于 2014-9-8 15:13:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
QQ截图20140908150957.png
如图,怎样利用stata,根据year 和company_id分组,求出每组的ethnicity分为几种???
比方说,company_id是34的这个公司,在2007年的ethinicity的11个数据分为unknown和caucasian两种,所以需要得到的数值就是2
二维码

扫码加我 拉你入群

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

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

关键词:Stata 变量分组 tata company UNKNOWN 种类

沙发
ming4733733 在职认证  发表于 2014-9-8 15:18:16 来自手机
Brittany1991 发表于 2014-9-8 15:13
如图,怎样利用stata,根据year 和company_id分组,求出每组的ethnicity分为几种???
比方说,company ...
我想知道这数据哪来的。

藤椅
Brittany1991 发表于 2014-9-8 15:21:32
ming4733733 发表于 2014-9-8 15:18
我想知道这数据哪来的。
wrds数据库下载

板凳
Brittany1991 发表于 2014-9-8 15:28:50
help !!!感激不尽!!!

报纸
ywh19860616 发表于 2014-9-9 06:19:26
  1. clear
  2. input companyid year str20 ethn
  3. 34 2007 a
  4. 34 2007 b
  5. 34 2007 b
  6. 34 2007 a
  7. 34 2007 c
  8. 35 2007 b
  9. 35 2007 a
  10. 35 2007 a
  11. 35 2007 b
  12. 36 2007 a
  13. 36 2007 b
  14. end

  15. ssc install distinct
  16. bys companyid year:distinct ethn
复制代码

地板
蓝色 发表于 2014-9-9 10:48:51
  1. clear
  2. input companyid year str20 ethn
  3. 34 2007 a
  4. 34 2007 b
  5. 34 2007 b
  6. 34 2007 a
  7. 34 2007 c
  8. 35 2007 b
  9. 35 2007 a
  10. 35 2007 a
  11. 35 2007 b
  12. 36 2007 a
  13. 36 2007 b
  14. 34 2008 a
  15. 34 2008 b
  16. 34 2008 b
  17. 34 2008 a
  18. 34 2008 c
  19. 35 2008 b
  20. 35 2008 a
  21. 35 2008 a
  22. 35 2008 b
  23. 36 2008 a
  24. 36 2008 b
  25. end
  26. gen nid=1

  27. *方法1
  28. bys year: table companyid  ethn,c(count nid) col

  29. *方法2
  30. table companyid  ethn year,c(count nid) col

  31. *方法3
  32. collapse (count) nid , by(companyid year ethn)
  33. list
复制代码


. clear


. input companyid year str20 ethn


     companyid       year                  ethn
  1. 34 2007 a
  2. 34 2007 b
  3. 34 2007 b
  4. 34 2007 a
  5. 34 2007 c
  6. 35 2007 b
  7. 35 2007 a
  8. 35 2007 a
  9. 35 2007 b
10. 36 2007 a
11. 36 2007 b
12. 34 2008 a
13. 34 2008 b
14. 34 2008 b
15. 34 2008 a
16. 34 2008 c
17. 35 2008 b
18. 35 2008 a
19. 35 2008 a
20. 35 2008 b
21. 36 2008 a
22. 36 2008 b
23. end


. gen nid=1


.
. *方法1
. bys year: table companyid  ethn,c(count nid) col


----------------------------------------------------------------------------------------------------------------------
-> year = 2007


--------------------------------------
          |            ethn           
companyid |     a      b      c  Total
----------+---------------------------
       34 |     2      2      1      5
       35 |     2      2             4
       36 |     1      1             2
--------------------------------------


----------------------------------------------------------------------------------------------------------------------
-> year = 2008


--------------------------------------
          |            ethn           
companyid |     a      b      c  Total
----------+---------------------------
       34 |     2      2      1      5
       35 |     2      2             4
       36 |     1      1             2
--------------------------------------


.
. *方法2
. table companyid  ethn year,c(count nid) col


--------------------------------------------------------------------
          |                      year and ethn                     
          | ---------- 2007 ----------    ---------- 2008 ----------
companyid |     a      b      c  Total        a      b      c  Total
----------+---------------------------------------------------------
       34 |     2      2      1      5        2      2      1      5
       35 |     2      2             4        2      2             4
       36 |     1      1             2        1      1             2
--------------------------------------------------------------------


.
. *方法3
. collapse (count) nid , by(companyid year ethn)


. list


     +------------------------------+
     | compan~d   year   ethn   nid |
     |------------------------------|
  1. |       34   2007      a     2 |
  2. |       34   2007      b     2 |
  3. |       34   2007      c     1 |
  4. |       34   2008      a     2 |
  5. |       34   2008      b     2 |
     |------------------------------|
  6. |       34   2008      c     1 |
  7. |       35   2007      a     2 |
  8. |       35   2007      b     2 |
  9. |       35   2008      a     2 |
10. |       35   2008      b     2 |
     |------------------------------|
11. |       36   2007      a     1 |
12. |       36   2007      b     1 |
13. |       36   2008      a     1 |
14. |       36   2008      b     1 |
     +------------------------------+

.



7
pawdragon 在职认证  发表于 2016-9-14 14:49:08
如果我想生成新的一列 这一列就是 每组中 ethn的种类个数呢? 谢谢

8
黃河泉 在职认证  发表于 2016-9-14 15:26:54
pawdragon 发表于 2016-9-14 14:49
如果我想生成新的一列 这一列就是 每组中 ethn的种类个数呢? 谢谢
你要的是这个吗?
  1. clear
  2. input companyid year str20 ethn
  3. 34 2007 a
  4. 34 2007 b
  5. 34 2007 a
  6. 34 2007 b
  7. 34 2007 a
  8. 34 2008 a
  9. 34 2008 b
  10. 34 2008 c
  11. 34 2008 d
  12. 34 2008 e
  13. 35 2007 b
  14. 35 2007 a
  15. 35 2007 c
  16. 35 2007 b
  17. 35 2008 a
  18. 35 2008 a
  19. 35 2008 a
  20. 35 2008 a
  21. 36 2007 a
  22. 36 2007 b
  23. 36 2008 a
  24. 36 2008 b
  25. 36 2008 c
  26. 36 2008 d
  27. end

  28. sort companyid year

  29. contract companyid year ethn
  30. gen nid = 1
  31. collapse (count) nid, by(companyid year)
复制代码

9
pawdragon 在职认证  发表于 2016-9-14 21:13:18
黃河泉 发表于 2016-9-14 15:26
你要的是这个吗?
谢谢!我想要的是这样的
stk  year  name
1    2000  广州
1    2001 上海
2    2000  北京
2    2001   北京
我要产生一个新的变量 使得能够知道每个stk 对应的name 种类,也就是变成这样:
stk  year  name   new_var
1    2000  广州      2
1    2001 上海       2
2    2000  北京      1
2    2001   北京     1
谢谢!可以想办法吗?

10
黃河泉 在职认证  发表于 2016-9-15 07:12:51
pawdragon 发表于 2016-9-14 21:13
谢谢!我想要的是这样的
stk  year  name
1    2000  广州
下列程序是从"蓝色"版主那边学的!
  1. bys stk name: gen id1 = _n
  2. bys stk: egen id2 = count(id1) if id1 == 1
  3. bys stk: egen newvar = mean(id2)
  4. drop id1 id2
复制代码

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

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