请选择 进入手机版 | 继续访问电脑版
楼主: manet
2654 15

[问答] 悬赏求助编程,急在线,生成新变量 [推广有奖]

  • 0关注
  • 0粉丝

大专生

33%

还不是VIP/贵宾

-

威望
0
论坛币
1171 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
184 点
帖子
15
精华
0
在线时间
84 小时
注册时间
2005-8-19
最后登录
2022-11-5

manet 发表于 2017-9-27 13:43:28 |显示全部楼层 |坛友微信交流群
100论坛币
悬赏求助编程,急在线等,根据家庭中个人的情况生成新的关于家庭的变量,详见问题补充
QQ截图20140427132644.png

现在的数据如图,想要生成一个新变量familyspend,在familyid变量值相同的观测值中,加和所有个人花费,即想看家庭成员的总花费情况。
现在的想法是:
/*生成家庭中的总花费变量mb*/
OPTIONS NOTHREADS ;
proc sql;
create table temp as
select FamilyId, SUM(zy139) as inpatientexpfamily;

run;

由于刚接触sas,所以只有个思路,但是不知道正确的语句应该是怎样的

最佳答案

tulinggo 查看完整内容

data test; input familyid individualid spend; cards; 1 1 11 1 2 14 1 3 23 1 4 25 1 5 27 2 1 26 2 2 13 2 3 15 ; run; proc sql; create table temp as select FamilyId,individualid,spend,SUM(spend) as inpatientexpfamily from test group by familyid order by familyid,individualid; quit;
关键词:悬赏求助 新变量 proc sql options threads
tulinggo 发表于 2017-9-27 13:43:29 |显示全部楼层 |坛友微信交流群
data test;
input familyid individualid spend;
cards;
1 1 11
1 2 14
1 3 23
1 4 25
1 5 27
2 1 26
2 2 13
2 3 15
;
run;

proc sql;
        create table temp as
        select FamilyId,individualid,spend,SUM(spend) as inpatientexpfamily
        from test
        group by familyid order by familyid,individualid;
quit;

使用道具

l1i2n3i4n5g 在职认证  发表于 2017-9-27 14:26:58 |显示全部楼层 |坛友微信交流群
data test;
input familyid individualid spend;
cards;
1 1 11
1 2 14
1 3 23
1 4 25
1 5 27
2 1 26
2 2 13
2 3 15
;
run;

proc sql;
        create table temp as
        select FamilyId, SUM(spend) as inpatientexpfamily
        from test
        group by familyid;
quit;

使用道具

manet 发表于 2017-9-27 16:11:01 |显示全部楼层 |坛友微信交流群
l1i2n3i4n5g 发表于 2017-9-27 14:26
data test;
input familyid individualid spend;
cards;
是这样的我想通过图片1生成图片2的familyspend变量,在每个样本后都有这个变量的数值,可能我之前写的语句思路不是很对,您补充的这个跑完之后不是我想要的,您看能重新写一个吗。
或者哪个大神能帮忙重写下感激不尽!

原始

原始

处理后想要得到的样子

处理后想要得到的样子
IMG_9955.JPG

使用道具

manet 发表于 2017-9-27 16:24:06 |显示全部楼层 |坛友微信交流群
不要看我已经写的语句和思路了。
我想获得如下图的数据,应该怎么写语句才能实现?谢谢了

IMG_9956.JPG

使用道具

manet 发表于 2017-9-27 17:30:24 |显示全部楼层 |坛友微信交流群
manet 发表于 2017-9-27 16:11
不要看我已经写的语句和思路了。
我想获得如下图的数据,应该怎么写语句才能实现?谢谢了
原始数据在后 ...
实在不好意麻烦您了啊。新的要求给你回复,麻烦您再帮忙看看怎么编程,真的非常非常感谢。

使用道具

manet 发表于 2017-9-27 20:20:59 |显示全部楼层 |坛友微信交流群
求解答~~~

使用道具

popodan 在职认证  发表于 2017-9-27 23:01:53 |显示全部楼层 |坛友微信交流群
  1. data a;
  2. input familyid  individualid spend;
  3. cards;
  4. 1 1 11
  5. 1 2 22
  6. 1 3 33
  7. 1 4 44
  8. 2 1 55
  9. 2 2 66
  10. 2 3 77
  11. 3 1 88
  12. 3 2 99
  13. 3 3 100
  14. 3 4 100
  15. ;
  16. run;

  17. proc sql;
  18. create table b as
  19. select familyid,individualid,spend,sum(spend) as familyspend
  20. from a
  21. group by familyid
  22. order by familyid, individualid;
  23. quit;
复制代码


使用道具

popodan 在职认证  发表于 2017-9-27 23:02:38 |显示全部楼层 |坛友微信交流群
是你要的结果吧
2017-09-27.png

使用道具

manet 发表于 2017-9-28 08:34:24 来自手机 |显示全部楼层 |坛友微信交流群
是这个结果,麻烦问一下程序是什么呢?感谢万分!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

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

GMT+8, 2024-3-29 01:46