全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1932 2
2012-09-01
有一个数据集,如下左图。
想做一个循环,首先判断x,当x=1时,则判断从x=1的这行开始进行。
之后判断y,如果y<9,那么number记录该行数值,t记录‘ok’
如果y>=9,那么判断下一行的y值,直到y值小于9为止,此时number记录行数,t记录‘ok'

x

y

x

y

number

t

7

3

7

3

 

5

2

5

2

 

3

9.2

3

9.2

 

1

7

1

7

4

ok

4

5

4

5

 

4

4

4

4

 

1

9.6

1

9.6

 

3

9.7

3

9.7

 

8

9.4

8

9.4

 

2

3

2

3

10

ok

7

2

7

2

 

 

data a;

input x y @@;

cards;

7 3 5 2 3 9.2 1 7 4 5 4 4 1 9.6 3 9.7 8 9.4 2 3 7 2

;

run;

data b;

set a (firstobs=1) nobs=n;

if _n_>1 then do;

   if x=1 then do;     

     if y<9 then do; number=_n_;t='ok';end;

       if y>=9 then do;

          do i=_n_+1;

          set a point=i;

          if y<9 then do; number=_n_;t='ok';     end;

            else i=i+1;

       end;

      end;

      end;

end;

run;

请教一下,我的程序哪里出问题呢?无法得到上述右图的表格。谢谢

二维码

扫码加我 拉你入群

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

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

全部回复
2012-9-1 13:22:34
或者有没有人知道怎么编程可以得到这个结果呀?麻烦大家了
二维码

扫码加我 拉你入群

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

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

2012-9-1 14:07:24
我编一个,仅供参考:
复制代码
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群