楼主: 虞子期
1439 3

筛选观测 [推广有奖]

  • 16关注
  • 0粉丝

本科生

86%

还不是VIP/贵宾

-

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

楼主
虞子期 发表于 2013-6-2 21:16:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
   a                     b             c
173.2465        5.641        28375
173.2908        5.645        7161
173.1294        5.642        767098
197.2151        9.998        51203
197.2644        9.999        13350
197.0907        9.999        1193382
197.3505        10.001        6035
173.8311        6.39        6832
197.899        10.34        7456

上述数据中,任意两行观测的变量a和b相减,若-0.5=<变量a的差值=<0.5, -0.3=<变量b的差值=<0.3,则将这些观测输出。
谢谢各位了!
结果是:

   a                                b                          c
173.2465           5.641           28375
173.2908           5.645           7161
173.1294           5.642          767098
197.2151          9.998            51203
197.2644          9.999            13350
197.0907          9.999            1193382
197.3505         10.001           6035

二维码

扫码加我 拉你入群

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

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

关键词:筛选观测

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Imasasor + 100 + 100 + 2 + 2 + 3 鼓励积极发帖讨论

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

沙发
boe 发表于 2013-6-2 22:15:37
样本数据有问题吧?
只是小数部分相减的话,才可以得到期望的结果。
????
Gorgeous girl , I love !

藤椅
Imasasor 发表于 2013-6-2 22:21:48
  1. data a;
  2. input a b c;
  3. cards;
  4. 173.2465        5.641        28375
  5. 173.2908        5.645        7161
  6. 173.1294        5.642        767098
  7. 197.2151        9.998        51203
  8. 197.2644        9.999        13350
  9. 197.0907        9.999        1193382
  10. 197.3505        10.001        6035
  11. 173.8311        6.39        6832
  12. 197.899        10.34        7456
  13. ;
  14. run;
  15. data a;
  16. set a;
  17. n=_n_;
  18. run;
  19. data b;
  20. set a;
  21. rename n=n1 a=a1 b=b1 c=c1;
  22. run;

  23. proc sql;
  24. create table merge as
  25. select a.*,b.* from a,b
  26. where abs(a.a-b.a1)<=0.5 and (a.b-b.b1)<=0.3 and n^=n1;
  27. quit;

  28. proc sort data=merge(keep=n) nodupkey out=c;
  29. by n;
  30. run;
  31. data final;
  32. merge c(in=x) a;
  33. by n;
  34. if x;
  35. drop n;
  36. run;
复制代码
完美解决
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
yongyitian + 1 + 1 + 1 精彩帖子

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

欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

板凳
yongyitian 发表于 2013-6-3 01:23:44
   将上一帖结果中的重复值和 a, b 差为零的观测去掉,就是想要的结果。

proc sql noprint;
   select count(*) into :Nobs    from aaa;
   select a into :a separated by ' ' from aaa;
   select b into :b separated by ' ' from aaa;
quit;

data bbb;
   array aa{&nobs} _temporary_ (&a);
   array bb{&nobs} _temporary_ (&b);
   set aaa end=last;
   n=_N_;
     do i = 1  to &nobs;
       a_dif = abs(a - aa(i));
       b_dif = abs(b - bb(i));
       if  a_dif <= 0.5 or b_dif <= 0.3  then output;
     end;
run;

proc sort data=bbb out=ccc (keep=a b c) nodupkey;
   by n a b;
   where a_dif^=0 and b_dif^=0;
run;

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

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