楼主: 滞点
4035 5

[有偿编程] sas 累加 [推广有奖]

  • 1关注
  • 0粉丝

讲师

2%

还不是VIP/贵宾

-

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

楼主
滞点 发表于 2018-3-5 18:20:37 |AI写论文
15论坛币
sas累加问题,有一笔数据,想某一列累加到90-110之间则输出这一行的数据,之后在累加至90-110之间继续输出这一行数据。




data.xlsx (74.97 KB)


如附件,sum列是需要累加的,到90-110之间时输出time,lat,lon。


谢谢!

最佳答案

cashes93 查看完整内容

不知道是不是这个意思,大概是利用retain去实现
关键词:time Tim Sum IME LAT

沙发
cashes93 发表于 2018-3-5 18:20:38
  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.         if 90<temp<110 then  do;
  12.         output;
  13.         temp=0;
  14.         end;
  15. run;
复制代码


不知道是不是这个意思,大概是利用retain去实现

藤椅
滞点 发表于 2018-3-6 09:59:50
cashes93 发表于 2018-3-5 20:20
不知道是不是这个意思,大概是利用retain去实现
您好!感谢您的回复,我想要的就是这样的,非常感谢,但再想请问您一下,我发现我的数据有时候累加后不能做到在90-110范围内,那如何做到输出累加项(不清零)为100,200,300等呢?再次感谢~~~~

板凳
滞点 发表于 2018-3-6 09:59:56
cashes93 发表于 2018-3-5 20:20
不知道是不是这个意思,大概是利用retain去实现
您好!感谢您的回复,我想要的就是这样的,非常感谢,但再想请问您一下,我发现我的数据有时候累加后不能做到在90-110范围内,那如何做到输出累加项(不清零)为100,200,300等呢?再次感谢~~~~

报纸
cashes93 发表于 2018-3-6 14:35:07
滞点 发表于 2018-3-6 09:59
您好!感谢您的回复,我想要的就是这样的,非常感谢,但再想请问您一下,我发现我的数据有时候累加后不能 ...
  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.         if mod(temp,100)=0 then  output;
  12. run;
复制代码
大概你的数据没有符合正好等于100,200,300...这样的数据...

地板
滞点 发表于 2018-3-6 14:39:17
cashes93 发表于 2018-3-6 14:35
大概你的数据没有符合正好等于100,200,300...这样的数据...
是的。。所以之前选择的是输出90-110之前的数据。。请问有没有办法从一开始累加到最后,最后判断累加值离整百数最近的时候输出呢?

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

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