SAS中文论坛

标题: 如何才能生扩大数据集 [打印本页]

作者: shiyiming    时间: 2010-6-10 16:27
标题: 如何才能生扩大数据集
数据:

    a         
1.80482
1.44749
-1.08332
0.98214
0.51366
-0.22058
0.03189
-1.2413
0.685
-0.89153
-0.7955
-0.3242
-1.34985
0.94571
1.42513
1.01125
-1.05773
-0.74647
0.39198
-0.72366
-0.63084
0.75923
-0.07628
-0.2212
1.18449
0.3045
-0.13531
1.02387
-0.40969
-0.39633
1.44749
-1.08332
0.98214
0.51366
-0.22058
0.03189
-1.2413
0.685
-0.89153
-0.7955
-0.3242
-1.34985
0.94571
1.42513
1.01125
-1.05773
-0.74647
0.39198
-0.72366
-0.63084
0.75923
-0.07628
-0.2212
1.18449
0.3045
-0.13531
1.02387
-0.40969
-0.39633
-0.46931
-1.08332
0.98214
0.51366
-0.22058
0.03189
-1.2413
0.685
-0.89153
-0.7955
-0.3242
-1.34985
0.94571
1.42513
1.01125
-1.05773
-0.74647
0.39198
-0.72366
-0.63084
0.75923
-0.07628
-0.2212
1.18449
0.3045
-0.13531
1.02387
-0.40969
-0.39633
-0.46931
-0.23923
0.98214
0.51366
-0.22058
0.03189
-1.2413
0.685
-0.89153
-0.7955
-0.3242
-1.34985
0.94571
1.42513
1.01125
-1.05773
-0.74647
0.39198
-0.72366
-0.63084
0.75923
-0.07628
-0.2212
1.18449
0.3045


扩大的新数据一是:每行重复十次,新增加一个变量C,C的值是每行前面十个数的A值,假如本行前面的数不足十个,按实际个数生成行数;
      新数据二是:每行重复十次,新增加一个变量C,C的值是每行前面五个数的值和后五个数的值,假如本行前面的数或者后面的数不足十个,按实际个数生成行数;

拜谢各位牛人了!
作者: shiyiming    时间: 2010-6-10 22:47
标题: Re: 如何才能生扩大数据集
[code:1wz7fmly]data raw;
        do group=1 to 100;
                a=_n_;
                output;
        end;
run;

/*lag_limit指定滞后n个数,ahead_limit指定提前n个数*/
/*%let lag_limit=5; %let ahead_limit=0;*/
%let lag_limit=3; %let ahead_limit=1;

data _temp(rename=(a=c));
        set raw(keep=a) nobs=n;
        do group_seq=&ahead_limit to -&lag_limit by -1;
                group=_n_-group_seq;
                if 0<group<=n;
        end;
run;

proc sql;
        create table temp as
                select a.a,b.c
                        from raw a inner join _temp b
                                on a.group=b.group
                        order by b.group,b.group_seq;
        drop table _temp;
quit;[/code:1wz7fmly]
作者: shiyiming    时间: 2010-6-11 00:42
标题: Re: 如何才能生扩大数据集
拜谢了,请教自己编程的水平很烂,有什么好的教材可以推荐吗?
作者: shiyiming    时间: 2010-6-11 10:26
标题: Re: 如何才能生扩大数据集
proc sql;
   create table temp as
      select a.a,b.c
         from raw a inner join _temp b
            on a.group=b.group
         order by b.group,b.group_seq;
   drop table _temp;
quit;

请问这段代码是用来实现什么的?
作者: shiyiming    时间: 2010-6-11 12:43
标题: Re: 如何才能生扩大数据集
把变量a和c合并到一个数据集,删除临时数据集




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