楼主: gotobest
912 3

SAS 用循环实现? [推广有奖]

  • 3关注
  • 1粉丝

硕士生

5%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
1060 点
帖子
61
精华
0
在线时间
117 小时
注册时间
2014-9-17
最后登录
2016-9-28

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data a;
input n a;
cards;
1 0
2 0
3 0
4 1
5 1
6 0
7 1
8 0
9 0
10 0
11 1
12 0
13 1
14 1
15 0
16 0
17 1
18 1
19 0
20 1
;
run;如何在a数据集中使第一个a=1往下5个a=0,再遇到a=1同样,让往下5个a=0,其他的a=1和a=0数据不变,请高手指教!

二维码

扫码加我 拉你入群

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

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

关键词:cards Input card Data Run 如何

回帖推荐

sniperhgy 发表于2楼  查看完整内容

楼主你好,你的需求不用显示的循环,只需要用set自己的隐式循环就行了:
沙发
sniperhgy 发表于 2014-11-20 15:53:49 |只看作者 |坛友微信交流群
楼主你好,你的需求不用显示的循环,只需要用set自己的隐式循环就行了:
  1. data b;
  2.   set a;
  3.   retain found_one_counter 0;

  4.   if found_one_counter = 0 then do;
  5.     if a = 1 then
  6.       found_one_counter = 5;
  7.   end;
  8.   else do;
  9.     found_one_counter = found_one_counter - 1;
  10.         a = 0;
  11.   end;
  12. run;
复制代码

使用道具

藤椅
gotobest 发表于 2014-11-20 16:03:16 |只看作者 |坛友微信交流群
sniperhgy 发表于 2014-11-20 15:53
楼主你好,你的需求不用显示的循环,只需要用set自己的隐式循环就行了:
就是我想要的结果,佩服!可以拜您为师么?

使用道具

板凳
sniperhgy 发表于 2014-11-20 16:56:07 |只看作者 |坛友微信交流群
gotobest 发表于 2014-11-20 16:03
就是我想要的结果,佩服!可以拜您为师么?
别这么说,我的水平也就是刚刚入门,共同努力,共同提高

使用道具

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

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

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

GMT+8, 2024-4-28 13:33