楼主: 饺子大神
12059 15

[数据管理求助] stata里面的简单加总问题 [推广有奖]

11
饺子大神 发表于 2013-9-16 12:34:50
Sunknownay 发表于 2013-9-16 11:22
你再试一下,将命令全部复制到do文件,再执行命令,应该可以的。
好的,谢谢~非常感谢~我再试试您的方法。到第二步以后我按照自己的笨方法做了,也行的。不过您的方法感觉更简单一些。我再试试!

12
Sunknownay 发表于 2013-9-16 12:54:06
饺子大神 发表于 2013-9-16 12:34
好的,谢谢~非常感谢~我再试试您的方法。到第二步以后我按照自己的笨方法做了,也行的。不过您的方法感觉 ...
修改了一下命令:
bysort name: egen m=total(cost)
bysort name date: gen n=_n
bysort name: egen N=total(n) if n==1
bysort name: gen cost1=m/N
穷则独善其身,达则兼济天下。

13
蓝色 发表于 2013-9-16 14:21:20
clear
input ///
name        date        cost
1        20080101        10
1        20080101        100
1        20090202        23
1        20091212        20
1        20091230        140
2        20080203        1200
2        20080305        230
3        20080110        6
3        20090908        12
3        20091010        300
3        20100910        230
end
format _all %10.0f
list

collapse (sum) cost,by( name date)
bysort name : egen mean=mean(cost)
list






. clear


. input ///
> name    date    cost


          name       date       cost
  1. 1       20080101        10
  2. 1       20080101        100
  3. 1       20090202        23
  4. 1       20091212        20
  5. 1       20091230        140
  6. 2       20080203        1200
  7. 2       20080305        230
  8. 3       20080110        6
  9. 3       20090908        12
10. 3       20091010        300
11. 3       20100910        230
12. end


. format _all %10.0f


. list


     +------------------------+
     | name       date   cost |
     |------------------------|
  1. |    1   20080100     10 |
  2. |    1   20080100    100 |
  3. |    1   20090202     23 |
  4. |    1   20091212     20 |
  5. |    1   20091230    140 |
     |------------------------|
  6. |    2   20080204   1200 |
  7. |    2   20080304    230 |
  8. |    3   20080110      6 |
  9. |    3   20090908     12 |
10. |    3   20091010    300 |
     |------------------------|
11. |    3   20100910    230 |
     +------------------------+


.
.
.
. collapse (sum) cost,by( name date)


. bysort name : egen mean=mean(cost)


. list


     +--------------------------------+
     | name       date   cost    mean |
     |--------------------------------|
  1. |    1   20080100    110   73.25 |
  2. |    1   20090202     23   73.25 |
  3. |    1   20091212     20   73.25 |
  4. |    1   20091230    140   73.25 |
  5. |    2   20080204   1200     715 |
     |--------------------------------|
  6. |    2   20080304    230     715 |
  7. |    3   20080110      6     137 |
  8. |    3   20090908     12     137 |
  9. |    3   20091010    300     137 |
10. |    3   20100910    230     137 |
     +--------------------------------+
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 100 + 10 + 1 + 1 + 1 热心帮助其他会员,命令简洁、方便!

总评分: 经验 + 100  论坛币 + 10  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

14
饺子大神 发表于 2013-9-18 18:19:16
蓝色 发表于 2013-9-16 14:21
clear
input ///
name        date        cost
神一样的存在啊~谢谢谢谢~

15
csf_king 发表于 2016-2-28 13:21:45
mean是求和命令,sum是加总命令。

16
402823992 发表于 2016-5-6 14:23:09
学习了
谢谢!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-26 15:59