楼主: 旧城少世
6786 15

sas中,如何对一列数值每隔7个进行求和,代码应该怎么写?最好使用proc sql过程 [推广有奖]

11
sniperhgy 发表于 2015-6-2 09:59:30
旧城少世 发表于 2015-6-1 21:12
嗯 我刚才把mod函数都查了一下 不过没有发现monotonic函数 能不能麻烦请稍微给我讲一下,或者你那边有这个 ...
MONOTONIC的话,就简单的把它当作data部里面的_N_(也就是楼主所说的序号)就行了。

12
sniperhgy 发表于 2015-6-2 10:01:09
何必不淡定。 发表于 2015-6-1 23:52
不过兄台你的代码似乎有点小问题。你实现的是每隔7个数取一个数,然后用取出来的数求和,似乎与楼主意思不 ...
朋友你好,我所理解的楼主的要求确实如你所说。

13
823954913 发表于 2015-6-2 11:10:47
mod函数。

14
jl60156 发表于 2015-6-2 22:35:29
proc sql;
  create table want as
  select *,sum(var) as sum, ceil(MONOTONIC( )/7) as grp
  from have
        group by calculated grp
  ;
quit;
已有 1 人评分论坛币 收起 理由
admin_kefu + 15 热心帮助其他会员

总评分: 论坛币 + 15   查看全部评分

15
旧城少世 学生认证  发表于 2015-6-3 16:21:04
何必不淡定。 发表于 2015-6-1 23:52
不过兄台你的代码似乎有点小问题。你实现的是每隔7个数取一个数,然后用取出来的数求和,似乎与楼主意思不 ...
亲们,谢谢你们,因为当时没理解monotonic函数的奥妙之处,所以把你们两个的代码综合了一下,实现了目的。threefeeling是我的原始数据。
data dd;
set sasuser.threefeeling;
n=_N_;
    if mod(n ,7) eq 1 then flag++1;
run;
proc sql;
create table uu as
select sum(totalpurchase) as tp,
sum(totalredeem) as tr
from dd
group by flag;
run;
quit;

16
ShawnLee42 发表于 2017-9-3 23:40:44
何必不淡定。 发表于 2015-6-1 15:17
hope this will help you
想问下你,两个加号和一个加号的区别是什么呀?我搜了一下没找到

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

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