楼主: sherrysmile
4354 9

[原创博文] 请教:如何循环分组计算百分比 [推广有奖]

  • 0关注
  • 0粉丝

高中生

87%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
199 点
帖子
31
精华
0
在线时间
25 小时
注册时间
2011-5-2
最后登录
2011-12-18

楼主
sherrysmile 发表于 2011-10-27 13:56:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现有数据例如:
date                   sign
19940103            1
19940103           -1
19940103           -1
19940103            0
19940103            1
19940103            0
       .
       .
19940105            1
19940105            0
19940105            0
19940105            0
19940105            1
19940105           -1
19940105           -1
        .
        .
现在想分别计算出每天的"sign”值为1,-1,和0时占当天"sign"值总数的百分比。也就是对于每一天,有百分之多少的sign值为1,百分之多少的sign值为-1,及多少为0.
我觉得应该是用proc sql语句来做,但苦于不清楚具体应该如何写code,还请高手帮忙 万分感谢!!
二维码

扫码加我 拉你入群

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

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

关键词:百分比 proc sql sql语句 sign code sql语句 百分比 如何

沙发
Eehanz 发表于 2011-10-27 14:23:07
        data tt;
          input date sign ;
          datalines;
19940103            1
19940103           -1
19940103           -1
19940103            0
19940103            1
19940103            0
19940105            1
19940105            0
19940105            0
19940105            0
19940105            1
19940105           -1
19940105           -1
;
run;

proc sql;
select a.*,b.date_cnt,a.sign_cnt/b.date_cnt as sign_rate
from
(select date,sign,count(*) as sign_cnt from tt group by date,sign ) a
,
(select date,count(*) as date_cnt from tt group by date) b
where a.date=b.date;
quit;

藤椅
yugao1986 发表于 2011-10-27 14:38:02
  1. data test;
  2.    infile cards;
  3.    input date sign;
  4.    cards;
  5. 19940103            1
  6. 19940103           -1
  7. 19940103           -1
  8. 19940103            0
  9. 19940103            1
  10. 19940103            0
  11. 19940105            1
  12. 19940105            0
  13. 19940105            0
  14. 19940105            0
  15. 19940105            1
  16. 19940105           -1
  17. 19940105           -1
  18. ;
  19. run;
  20. ods trace on;
  21. proc freq data=test ;
  22.    by date;
  23.    tables sign ;
  24.    ods output onewayfreqs=result(keep=date sign percent);
  25. run;
  26. ods trace off;
复制代码
三人行必有我师

板凳
sherrysmile 发表于 2011-10-27 15:31:12
yugao1986 发表于 2011-10-27 14:38
十分感谢  原来这么简洁的code就可以了 学习了!!

报纸
jingju11 发表于 2011-10-27 22:12:53
学习了。

地板
sherrysmile 发表于 2011-10-28 05:31:00
jingju11 发表于 2011-10-27 22:12
FREQ is a very flexible procedure. we can do also do like that:jingju
thx!  this is also an efficient way to do it !

7
Eehanz 发表于 2011-10-28 10:16:15
跟大牛们继续学习中.....................

8
sherrysmile 发表于 2011-10-28 11:35:21
Eehanz 发表于 2011-10-27 14:23
data tt;
          input date sign ;
          datalines;
谢谢 Eehanz, 这个方法学习了 !

9
picklerice 发表于 2012-3-24 14:45:35
yugao1986 发表于 2011-10-27 14:38
如果只想取sign=1时的pct,观察其随着天数的变化趋势,在gplot中,百分比变量code,如何编写,谢谢高手

10
yugao1986 发表于 2012-3-27 12:05:35
sorry,关于作图,你可以看看:http://blog.sina.com.cn/s/blog_5d3b177c0100b68a.html
三人行必有我师

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 12:21