请选择 进入手机版 | 继续访问电脑版
楼主: 滞点
1165 1

[有偿编程] sas筛选数据问题 [推广有奖]

  • 1关注
  • 0粉丝

博士生

91%

还不是VIP/贵宾

-

威望
0
论坛币
1321 个
通用积分
5.8500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
43099 点
帖子
101
精华
0
在线时间
616 小时
注册时间
2015-7-27
最后登录
2024-4-16

滞点 发表于 2018-3-6 14:03:40 |显示全部楼层 |坛友微信交流群
10论坛币
一笔数据为累加数据,想做到输出离100,200,300……最近的数据,不知道该如何做呢?麻烦帮忙~


out.xlsx (391.63 KB)


对temp列做每100就输出一行的数据,有时候temp的值不是刚好到整百的值,但我想输出整百时离整百最近的那一行的值,感谢~

最佳答案

cashes93 查看完整内容

不知是否是你想要的
关键词:筛选数据 Temp TEM 不知道
cashes93 发表于 2018-3-6 14:03:41 |显示全部楼层 |坛友微信交流群
  1. proc datasets library=work kill nolist;
  2. quit;

  3. proc import out = have
  4.     datafile = "D:\日常练习\xiaocgn\data.xlsx"
  5.     dbms = excel replace;
  6. run;
  7. data want;
  8.         set have;
  9.         retain temp 0;
  10.         temp+sum;
  11.         group= int(temp/100);
  12.         mod=mod(temp,100);
  13. run;

  14. proc sort data=want  out=want  sortseq=linguistic(numeric_collation=on);by    group temp;quit;

  15. data want1;
  16.         set want;
  17.         by  group temp;
  18.         if first.group  then do;
  19.         cd=abs(mod(temp,100));
  20.         group1=group-1;
  21.         output;
  22.         end;
  23.         else if  last.group  then do;
  24.         cd=abs(100-mod(temp,100));
  25.         group1=group;
  26.         output;
  27.         end;
  28. run;
  29. proc sql noprint;
  30. create table final(where=(cd=temp1)) as
  31. select distinct *,min(cd) as temp1
  32. from   want1
  33. group by group1;
  34. quit;
复制代码



不知是否是你想要的

使用道具

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

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

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

GMT+8, 2024-4-17 07:44