楼主: nihao111
18846 14

[其他] 请教stata如何统计tab个数 [推广有奖]

  • 3关注
  • 2粉丝

教师

已卖:98份资源

副教授

3%

还不是VIP/贵宾

-

威望
0
论坛币
10792 个
通用积分
13.6333
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
8192 点
帖子
314
精华
0
在线时间
967 小时
注册时间
2007-5-3
最后登录
2025-9-23

楼主
nihao111 发表于 2010-5-29 10:16:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
大家好!我最近遇到个小问题百思不得其解。stata中如何统计tab个数,即第一列个数,注意不是第二列Freq,第二列我是会的。
比如:每个省下边有很多市,每个市下边又有很多企业,我用stata简单命令如何统计出各个省份具体城市个数而不是重复写 tab  city if province=="山西省",tab  city if province=="陕西省"……,并且人工数tab第一列个数? 提前谢谢各位!
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata tab province 百思不得其解 山西省 陕西省 如何 统计

沙发
houquan 发表于 2010-5-29 10:42:05
1# nihao111 试试:

tabstat city, by(province) statistics(count)
We all love to instruct, though we can teach only what is not worth knowing. -- J. Austen

藤椅
蓝色 发表于 2010-5-29 10:53:19
最好不部分数据贴出来
这样才容易写命令

板凳
sungmoo 发表于 2010-5-29 12:38:18
nihao111 发表于 2010-5-29 10:16 比如:每个省下边有很多市,每个市下边又有很多企业,我用stata简单命令如何统计出各个省份具体城市个数而不是重复写 tab  city if province=="山西省",tab  city if province=="陕西省"……
*试一下:

bys province city: g g=_n
collapse (sum) g if g==1, by(province)

*或

duplicates drop province city,force
collapse (count) city,by(province)

补充内容 (2013-1-18 16:55):
*或
egen n=tag(xzq_province xzq_city)
collapse (sum)n,by(xzq_province)

报纸
nihao111 发表于 2010-5-29 13:09:34
sungmoo 发表于 2010-5-29 12:38
nihao111 发表于 2010-5-29 10:16 比如:每个省下边有很多市,每个市下边又有很多企业,我用stata简单命令如何统计出各个省份具体城市个数而不是重复写 tab  city if province=="山西省",tab  city if province=="陕西省"……
bys province: egen g=group(city)
collapse (max) g, by(province)
sungmoo版主,貌似by 或bysort 不可以和egen ,,,group连用吧?谢谢回复
egen ... group() may not be combined with by
r(190);

另外,
. collapse (max) g, by(xzq_province)
可以实现,但g是累加的啊,我想要单独的

地板
nihao111 发表于 2010-5-29 13:21:29
houquan 发表于 2010-5-29 10:42
1# nihao111 试试:

tabstat city, by(province) statistics(count)
1.city是字符型
2.转换成数值型后,结果与tab city 类似,这个正是第2列个数,不是我要的,我要第1列个数.
还是谢谢你!

7
nihao111 发表于 2010-5-29 13:43:04
蓝色 发表于 2010-5-29 10:53
最好把部分数据贴出来
这样才容易写命令
谢谢版主,部分数据如下
. tab  xzq_city if  xzq_province=="15"
   xzq_city |      Freq.     Percent        Cum.
------------+-----------------------------------
       1501 |         26        9.74        9.74
       1502 |         40       14.98       24.72
       1503 |         11        4.12       28.84
       1504 |         39       14.61       43.45
       1505 |         25        9.36       52.81
       1506 |         35       13.11       65.92
       1507 |         16        5.99       71.91
       1508 |         17        6.37       78.28
       1509 |         23        8.61       86.89
       1522 |          8        3.00       89.89
       1525 |         18        6.74       96.63
       1526 |          4        1.50       98.13
       1529 |          5        1.87      100.00
------------+-----------------------------------
      Total |        267      100.00
我对xzq_province=="15"情况下有多少个xzq_city感兴趣,这里是13个,而对每个city下企业个数不关心。

8
蓝色 发表于 2010-5-29 14:49:53
by xzq_province xzq_city : gen cityid=_n
table xzq_province if cityid==1,c(n xzq_city)

9
nihao111 发表于 2010-5-29 15:07:50
蓝色 发表于 2010-5-29 14:49
by xzq_province xzq_city : gen cityid=_n
table xzq_province if cityid==1,c(n xzq_city)
table xzq_province if cityid==1,c(n xzq_city)
variable __000002 not found
r(111);

版主思想很好,只差一步了,谢谢版主!
tab xzq_province if cityid==1貌似可以,但怎么把 Freq.这列变为变量?

10
蓝色 发表于 2010-5-29 15:30:44
clear
input xzq_province        xzq_city        enterp
11        1101        1
11        1101        2
11        1101        3
11        1101        4
11        1101        5
11        1102        1
11        1102        2
11        1102        3
11        1102        4
11        1103        1
11        1103        2
11        1103        3
11        1103        4
11        1103        5
12        1201        1
12        1201        2
12        1201        3
12        1201        4
12        1201        5
12        1201        6
12        1201        7
12        1201        8
12        1202        1
12        1202        2
12        1203        1
12        1204        1
12        1204        2
12        1204        3
12        1204        4
13        1301        1
13        1301        2
13        1301        3
13        1301        4
13        1301        5
13        1301        6
13        1301        7
13        1301        8
13        1301        9
13        1302        1
13        1302        2
13        1302        3
13        1302        4
13        1302        5
13        1302        6
13        1302        7
13        1302        8
13        1302        9
13        1302        10
13        1302        11
13        1302        12
13        1302        13
13        1302        14
13        1302        15
13        1302        16
13        1302        17
13        1302        18
13        1302        19
13        1302        20
13        1302        21
end

list
bysort xzq_province xzq_city : gen cityid=_n
table  xzq_province if cityid==1,c(n xzq_city)

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

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