SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 667|回复: 4
打印 上一主题 下一主题

如何生成循环表格?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-10-15 14:19:37 | 只看该作者

如何生成循环表格?

日期       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变量内容重复一次。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-10-15 14:35:19 | 只看该作者

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-10-15 15:44:04 | 只看该作者

Re: 如何生成循环表格?

perfect.

精练!

赞一个!

谢谢! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-10-15 21:50:47 | 只看该作者

Re: 如何生成循环表格?

对于一般情况都适用的程序已经发你邮箱,请注意查收
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2010-10-16 17:56:46 | 只看该作者

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
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-3 20:18 , Processed in 0.119500 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表