楼主: 饺子大神
11205 15

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

  • 0关注
  • 2粉丝

博士生

52%

还不是VIP/贵宾

-

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

相似文件 换一批

+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
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 08:02