楼主: 虞子期
1434 2

求助数据集整合 [推广有奖]

  • 16关注
  • 0粉丝

本科生

86%

还不是VIP/贵宾

-

威望
0
论坛币
25 个
通用积分
0
学术水平
2 点
热心指数
2 点
信用等级
3 点
经验
1770 点
帖子
58
精华
0
在线时间
102 小时
注册时间
2012-8-31
最后登录
2015-1-19

楼主
虞子期 发表于 2012-11-13 10:49:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位大侠,本人目前有一批数据需要整合处理,希望各位指教,
data test;
input x y z@@;
cards;
    5.456    286.070      24089
   5.457    303.096      18077
   5.458    250.049      22403   
   5.459    385.994       7982
   5.654    216.113       5408
  5.705    329.054      12721
5.785    205.990       5945
  5.807    366.143      77931
    5.871    552.247       6758
  5.880    127.265      14135
  5.880    173.472       5094
5.880    156.103      39896
5.880    127.225      56122
   5.880    112.081      39519
   5.880    173.247      5175
5.881    173.130    1203539
  5.881    127.124    1265049
  5.881    109.091      160
5.882    136.080      53710
   5.883    173.295      13767
5.883    181.061      15356
   5.883    173.407       6816
    5.884    127.334       6741
5.884    137.086      38664
  5.913    171.116      13954
5.955    270.084      55236
;
run;
以上是需要处理的数据集,要把变量X取值相差范围是0到0.003和变量Y 取值范围相差是0到0.33的观测找出,并把符合条件的Y值的均数作为新观测中Y的取值,以符合条件的Y对应的Z取值中,Z值最大的观测对应的X作为新观测中X的取值,新观测中Z值是符合条件的Y值对应的所有观测中Z值的和
这个问题困扰我很久,希望大家多多指教,谢谢

二维码

扫码加我 拉你入群

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

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

关键词:数据集 cards Input 各位大侠 test

沙发
pobel 在职认证  发表于 2012-11-13 11:58:09
不知道是不是你想要的:
  1. data test;
  2. input x y z@@;
  3. cards;
  4.     5.456    286.070      24089
  5.    5.457    303.096      18077
  6.    5.458    250.049      22403   
  7.    5.459    385.994       7982
  8.    5.654    216.113       5408
  9.   5.705    329.054      12721
  10. 5.785    205.990       5945
  11.   5.807    366.143      77931
  12.     5.871    552.247       6758
  13.   5.880    127.265      14135
  14.   5.880    173.472       5094
  15. 5.880    156.103      39896
  16. 5.880    127.225      56122
  17.    5.880    112.081      39519
  18.    5.880    173.247      5175
  19. 5.881    173.130    1203539
  20.   5.881    127.124    1265049
  21.   5.881    109.091      160
  22. 5.882    136.080      53710
  23.    5.883    173.295      13767
  24. 5.883    181.061      15356
  25.    5.883    173.407       6816
  26.     5.884    127.334       6741
  27. 5.884    137.086      38664
  28.   5.913    171.116      13954
  29. 5.955    270.084      55236
  30. ;
  31. run;

  32. *** diff in X between 0 and 0.003;
  33. proc sort data=test; by x;
  34. run;

  35. data test1;
  36.     set test end=last;
  37.         by x;
  38.         diff_before=dif(x);
  39.         if not last then do;
  40.         set test(keep=x rename=(x=x_next) firstobs=2);
  41.                 diff_after=x-x_next;
  42.         end;
  43.         if min(abs(diff_before),abs(diff_after))<=0.003 then X_flag=1;
  44.         drop diff: x_next;
  45. run;
  46.    
  47. *** diff in Y between 0 and 0.33;
  48. proc sort data=test1; by y;
  49. run;

  50. data test2;
  51.     set test1 end=last;
  52.         by y;
  53.         diff_before=dif(y);
  54.         if not last then do;
  55.         set test1(keep=y rename=(y=y_next) firstobs=2);
  56.                 diff_after=y-y_next;
  57.         end;
  58.         if min(abs(diff_before),abs(diff_after))<=0.33 then y_flag=1;
  59. run;

  60. *** New obs;
  61. proc sql;
  62.   create table test3 as
  63.    select * from
  64.        (select distinct x from test2 where x_flag=1 and y_flag=1 having z=max(z))
  65.            ,(select avg(y) as y, sum(z) as z from test2 where x_flag=1 and y_flag=1);
  66. quit;
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
数据分析师3K + 60 + 2 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 60  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

和谐拯救危机

藤椅
虞子期 发表于 2012-11-13 14:44:51
谢谢你的解答,还是没能算出预期结果,是不是我说得不清楚呢?

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

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