楼主: 饺子大神
12060 15

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

  • 0关注
  • 2粉丝

博士生

52%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
53.2826
学术水平
4 点
热心指数
5 点
信用等级
4 点
经验
2499 点
帖子
254
精华
0
在线时间
153 小时
注册时间
2011-11-28
最后登录
2022-8-17

楼主
饺子大神 发表于 2013-9-15 20:59:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
见附图,有三列,第一列name即不同的人,第二列为不同的日期,第三列为当天买某一样东西花了多少钱。我想要算的是每个人平均每一次花了多少钱。我之前是直接把某一个人的cost加起来,除以这个人的记录数。比如“1”的cost相加后再除以5,但实际上这样是不对的。日期一致默认是在同一个地方的消费,只是买了不同的东西。所以“1”这个人的次均费用应该是cost相加后,除以4.应该是先把日期一致的记录的合并成一条再来算。但是我不知道这样做怎么用stata实现=。=
不晓得我表达清楚没有,有哪位网友可以帮帮我?!
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 总问题 Cost name 我不知道 记录

飞信截图20130915205303.jpg (16.7 KB)

飞信截图20130915205303.jpg

沙发
饺子大神 发表于 2013-9-15 21:05:08
对了,日期项不同的人是会重复的。

藤椅
Sunknownay 发表于 2013-9-15 21:12:55
试一下这个命令:
bysort name: egen var4=mean(cost)
穷则独善其身,达则兼济天下。

板凳
饺子大神 发表于 2013-9-15 21:18:05
Sunknownay 发表于 2013-9-15 21:12
试一下这个命令:
bysort name: egen var4=mean(cost)
这样做不对的,还是我之前说的问题:日期一样默认为在同一家商店里购买的。所以次均费用的计算,要把这个人同一日期的cost加起来再算mean值才行

报纸
蓝色 发表于 2013-9-15 23:35:54

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



已有 1 人评分经验 论坛币 收起 理由
葫芦娃大王 + 10 + 10 精彩帖子

总评分: 经验 + 10  论坛币 + 10   查看全部评分

地板
Sunknownay 发表于 2013-9-15 23:48:06
bysort name: egen m=total(cost)
bysort name date: gen n=_n
qui bysort name: count  if n==1
bysort name: gen cost1=m/r(N)
穷则独善其身,达则兼济天下。

7
饺子大神 发表于 2013-9-16 11:10:09
Sunknownay 发表于 2013-9-15 23:48
bysort name: egen m=total(cost)
bysort name date: gen n=_n
qui bysort name: count  if n==1
太神奇了,不过到这步还是对的,
bysort name: egen m=total(cost)
bysort name date: gen n=_n
这步之后,后面的不晓得什么意思,但是计算出来的结果还是不对。。。

8
饺子大神 发表于 2013-9-16 11:15:30
Sunknownay 发表于 2013-9-15 23:48
bysort name: egen m=total(cost)
bysort name date: gen n=_n
qui bysort name: count  if n==1
我大概明白这个做法了,就是先把cost加总,然后进行一个以name为主,以date为辅的排序。然后count的是不一样的date,然后用加总以后的cost除以这个值。

9
饺子大神 发表于 2013-9-16 11:17:04
Sunknownay 发表于 2013-9-15 23:48
bysort name: egen m=total(cost)
bysort name date: gen n=_n
qui bysort name: count  if n==1
我现在的问题是,所有的cost都除以的是2,而不是加总以后的那个数

10
Sunknownay 发表于 2013-9-16 11:22:11
饺子大神 发表于 2013-9-16 11:17
我现在的问题是,所有的cost都除以的是2,而不是加总以后的那个数
你再试一下,将命令全部复制到do文件,再执行命令,应该可以的。
穷则独善其身,达则兼济天下。

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

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