SAS中文论坛

标题: 如何生成循环表格? [打印本页]

作者: shiyiming    时间: 2010-10-15 14:19
标题: 如何生成循环表格?
日期       a         b         c         d
  20101014       0               1         2         0
  20101015       0         2         0         1
  20101016       1         0         0         2
  20101017       2         0         1         0

  20101018       0         1         2         0
  20101019       0         2         0         1
  20101020       1         0         0         2
  20101021       2         0         1         0

  20101022       0         1         2         0
     .
     .
     .
     .
  20121230      


问题:要生成上述循环表,如何实现!每四天a、b、c、d变量内容重复一次。
作者: shiyiming    时间: 2010-10-15 14:35
标题: Re: 如何生成循环表格?
data test;
    format date yymmdd10.;
    input a b c d;
    do date='13oct2010'd+_n_ by 4 while(date le '30dec2012'd);
           output;
        end;
        cards;
0 1 2 0
0 2 0 1
1 0 0 2
2 0 1 0
;


proc sort data=test; by date; run;
作者: shiyiming    时间: 2010-10-15 15:44
标题: Re: 如何生成循环表格?
perfect.

精练!

赞一个!

谢谢! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
作者: shiyiming    时间: 2010-10-15 21:50
标题: Re: 如何生成循环表格?
对于一般情况都适用的程序已经发你邮箱,请注意查收
作者: shiyiming    时间: 2010-10-16 17:56
标题: Re: 如何生成循环表格?
菜鸟接着请教:

如果有一数据表含3条数据,如:

日期     a b c d
20101014 3 4 1 2
20101015 4 1 2 3
20101016 1 2 3 4

要做到:
1.如果是第一条数据前提下:
      如a,b,c,d=1,  则赋值a,b,c,d=4.5;
      如a,b,c,d=2,则赋值a,b,c,d=4.5;
      如a,b,c,d=3,则赋值a,b,c,d=3;
      如a,b,c,d=4,则赋值a,b,c,d=0;

2.如果是最后一条数据前提下:
      如a,b,c,d=1,  则赋值a,b,c,d=4.5;
      如a,b,c,d=2,则赋值a,b,c,d=1.5;
      如a,b,c,d=3,则赋值a,b,c,d=0;
      如a,b,c,d=4,则赋值a,b,c,d=1.5;

3.中间数据:
      如a,b,c,d=1,  则赋值a,b,c,d=4.5;
      如a,b,c,d=2,则赋值a,b,c,d=4.5;
      如a,b,c,d=3,则赋值a,b,c,d=0;
      如a,b,c,d=4,则赋值a,b,c,d=0;

即,变为如下结果:
日期     a b c d
20101014 3 0 4.5 4.5
20101015 0 4.5 4.5 0
20101016 4.5 1.5 0 1.5




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2