楼主: lovelybetty1208
2036 5

如何按2个字段求频数,求和 [推广有奖]

  • 0关注
  • 1粉丝

已卖:1份资源

博士生

47%

还不是VIP/贵宾

-

威望
0
论坛币
97 个
通用积分
0
学术水平
1 点
热心指数
5 点
信用等级
1 点
经验
17470 点
帖子
293
精华
0
在线时间
147 小时
注册时间
2011-11-5
最后登录
2015-7-11

楼主
lovelybetty1208 发表于 2013-4-5 22:07:51 |AI写论文
5论坛币
原始数据集如下:
复制代码
现在想求 每一个id 对应不同的client 的不同type(类别)时的频次,同时计算time的和。想求得的结果如下表。问该怎么写代码。是用proc freq 还是 proc means。 或者用proc sql也可以。

  1. id client type freq time
  2. a b 1 2 1740
  3. a b 0 2 0
  4. a c 1 2 3660
  5. a d 1 2 80
  6. a e 0 2 0
  7. b a 1 2 1212
  8. b a 0 2 0
  9. b c 1 2 132
  10. b c 0 2 0
  11. b d 1 2 1842
  12. b e 1 4 360
  13. b f 1 2 1200
  14. c a 1 3 2189
  15. c a 0 2 0
  16. c b 1 3 970
  17. c e 0 2 0
  18. c f 1 2 600
  19. c f 0 2 600
  20. c w 1 2 1860
  21. d e 1 1 210
  22. d e 0 1 0
  23. d j 1 2 2089
  24. d k 1 1 300
  25. d k 0 1 0
  26. d l 0 1 600
  27. d m 1 2 3760
  28. d n 1 1 531
  29. d n 0 1 0
  30. d q 1 1 829
  31. d q 0 1 0
  32. d t 1 1 300
  33. d t 0 1 0
  34. d w 1 1 600
复制代码
请高手指教!!!


最佳答案

zhengbo8 查看完整内容

这下应该实现了楼主的要求。
关键词:proc sql Client means time freq 如何
耶和华是我的牧者,我必不致缺乏。
他使我躺卧在青草地上,
领我在可安歇的水边。

沙发
zhengbo8 发表于 2013-4-5 22:07:52
lovelybetty1208 发表于 2013-4-5 23:31
谢谢你的想法。不过结果不是我要的。我要的结果已经在发帖时写出来了,希望能得到那种结果。
我将你的代 ...
  1. data a;
  2. input id $ client $ type time;
  3. datalines;
  4.     a        b        1        1140
  5.     a        c        1        2100
  6.     a        d        1        40
  7.     a        e        0        0
  8.     a        b        0        0
  9.     a        b        1        600
  10.     a        c        1        1560
  11.     a        d        1        40
  12.     a        e        0        0
  13.     a        b        0        0
  14.     b        a        1        606
  15.     b        c        1        66
  16.     b        a        0        0
  17.     b        c        0        0
  18.     b        d        1        1191
  19.     b        e        1        30
  20.     b        e        1        150
  21.     b        f        1        600
  22.     b        a        1        606
  23.     b        c        1        66
  24.     b        a        0        0
  25.     b        c        0        0
  26.     b        d        1        651
  27.     b        e        1        30
  28.     b        e        1        150
  29.     b        f        1        600
  30.     c        b        1        40
  31.     c        b        1        720
  32.     c        a        0        0
  33.     c        a        1        829
  34.     c        w        1        600
  35.     c        e        0        0
  36.     c        f        1        300
  37.     c        f        0        0
  38.     c        b        1        210
  39.     c        a        1        531
  40.     c        a        0        0
  41.     c        a        1        829
  42.     c        w        1        1260
  43.     c        e        0        0
  44.     c        f        1        300
  45.     c        f        0        600
  46.     d        m        1        3040
  47.     d        m        1        720
  48.     d        q        0        0
  49.     d        q        1        829
  50.     d        w        1        600
  51.     d        e        0        0
  52.     d        t        1        300
  53.     d        t        0        0
  54.     d        e        1        210
  55.     d        n        1        531
  56.     d        n        0        0
  57.     d        j        1        829
  58.     d        j        1        1260
  59.     d        k        0        0
  60.     d        k        1        300
  61.     d        l        0        600
  62. ;
  63. run;


  64. PROC MEANS data=a noprint;
  65.         CLASS id client type;
  66.         TYPES id*client*type;
  67.         OUTPUT out=b(drop=_type_)  sum=cnt;
  68. RUN;
复制代码

2013-04-05_233642.gif

这下应该实现了楼主的要求。





已有 1 人评分学术水平 热心指数 信用等级 收起 理由
lovelybetty1208 + 1 + 1 + 1 已经解决了问题,真是高手

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
lovelybetty1208 发表于 2013-4-5 22:09:42
原始数据如下:
  1. id        otherpart        type        time
  2. a        b        1        1140
  3. a        c        1        2100
  4. a        d        1        40
  5. a        e        0        0
  6. a        b        0        0
  7. a        b        1        600
  8. a        c        1        1560
  9. a        d        1        40
  10. a        e        0        0
  11. a        b        0        0
  12. b        a        1        606
  13. b        c        1        66
  14. b        a        0        0
  15. b        c        0        0
  16. b        d        1        1191
  17. b        e        1        30
  18. b        e        1        150
  19. b        f        1        600
  20. b        a        1        606
  21. b        c        1        66
  22. b        a        0        0
  23. b        c        0        0
  24. b        d        1        651
  25. b        e        1        30
  26. b        e        1        150
  27. b        f        1        600
  28. c        b        1        40
  29. c        b        1        720
  30. c        a        0        0
  31. c        a        1        829
  32. c        w        1        600
  33. c        e        0        0
  34. c        f        1        300
  35. c        f        0        0
  36. c        b        1        210
  37. c        a        1        531
  38. c        a        0        0
  39. c        a        1        829
  40. c        w        1        1260
  41. c        e        0        0
  42. c        f        1        300
  43. c        f        0        600
  44. d        m        1        3040
  45. d        m        1        720
  46. d        q        0        0
  47. d        q        1        829
  48. d        w        1        600
  49. d        e        0        0
  50. d        t        1        300
  51. d        t        0        0
  52. d        e        1        210
  53. d        n        1        531
  54. d        n        0        0
  55. d        j        1        829
  56. d        j        1        1260
  57. d        k        0        0
  58. d        k        1        300
  59. d        l        0        600
复制代码
耶和华是我的牧者,我必不致缺乏。
他使我躺卧在青草地上,
领我在可安歇的水边。

板凳
幸福的等待 发表于 2013-4-5 22:13:45
不懂,好像很难,希望你能早日解决

报纸
zhengbo8 发表于 2013-4-5 23:15:54
lovelybetty1208 发表于 2013-4-5 22:09
原始数据如下:
  1. data a;
  2. input id $ client $ type time;
  3. datalines;
  4.     a        b        1        1140
  5.     a        c        1        2100
  6.     a        d        1        40
  7.     a        e        0        0
  8.     a        b        0        0
  9.     a        b        1        600
  10.     a        c        1        1560
  11.     a        d        1        40
  12.     a        e        0        0
  13.     a        b        0        0
  14.     b        a        1        606
  15.     b        c        1        66
  16.     b        a        0        0
  17.     b        c        0        0
  18.     b        d        1        1191
  19.     b        e        1        30
  20.     b        e        1        150
  21.     b        f        1        600
  22.     b        a        1        606
  23.     b        c        1        66
  24.     b        a        0        0
  25.     b        c        0        0
  26.     b        d        1        651
  27.     b        e        1        30
  28.     b        e        1        150
  29.     b        f        1        600
  30.     c        b        1        40
  31.     c        b        1        720
  32.     c        a        0        0
  33.     c        a        1        829
  34.     c        w        1        600
  35.     c        e        0        0
  36.     c        f        1        300
  37.     c        f        0        0
  38.     c        b        1        210
  39.     c        a        1        531
  40.     c        a        0        0
  41.     c        a        1        829
  42.     c        w        1        1260
  43.     c        e        0        0
  44.     c        f        1        300
  45.     c        f        0        600
  46.     d        m        1        3040
  47.     d        m        1        720
  48.     d        q        0        0
  49.     d        q        1        829
  50.     d        w        1        600
  51.     d        e        0        0
  52.     d        t        1        300
  53.     d        t        0        0
  54.     d        e        1        210
  55.     d        n        1        531
  56.     d        n        0        0
  57.     d        j        1        829
  58.     d        j        1        1260
  59.     d        k        0        0
  60.     d        k        1        300
  61.     d        l        0        600
  62. ;
  63. run;


  64. PROC MEANS data=a noprint;
  65.         CLASS id type;
  66.         OUTPUT out=b  sum=cnt;
  67. RUN;
复制代码

2013-04-05_231020.gif




已有 1 人评分经验 论坛币 学术水平 收起 理由
Imasasor + 100 + 100 + 3 观点有启发

总评分: 经验 + 100  论坛币 + 100  学术水平 + 3   查看全部评分

地板
lovelybetty1208 发表于 2013-4-5 23:31:28
zhengbo8 发表于 2013-4-5 23:15
谢谢你的想法。不过结果不是我要的。我要的结果已经在发帖时写出来了,希望能得到那种结果。
我将你的代码改了改:
PROC MEANS data=a noprint;
        CLASS id client type;
        OUTPUT out=b  sum=cnt;
RUN;

结果还是不理想。 有谁能帮忙?
耶和华是我的牧者,我必不致缺乏。
他使我躺卧在青草地上,
领我在可安歇的水边。

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

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