全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1377 2
2012-06-20
譬如说我有一组变量
group_all
1
2
3
4
5
6

怎样才能变为
group1     group2
1                  4
2                  5
3                  6


多谢啦
二维码

扫码加我 拉你入群

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

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

全部回复
2012-6-20 13:41:17
二维码

扫码加我 拉你入群

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

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

2012-6-20 15:10:13
data b;
input group_all;
cards;
1
2
3
4
5
6
;
run;
data b;
set b;
code=compress('group'||ceil(group_all/3));
run;

proc sort data = Work.B nodupkey out = _PROJ_.SPLITED0 (keep=CODE);
   by CODE;
run;

/***Assign values to macro variables***/
data _null_;
  set _PROJ_.SPLITED0 end=eof;
  newvar = compress(CODE);
  call symput('col'||left(_n_),left(trim(newvar)));
  call symput('value'||left(_n_),left(trim(CODE)));
  if eof then call symput('num',_n_);
run;

/***Subset the data set by Split-by column***/
%macro subdata;
  %*                                 ;
  %****Macro to subset a data set****;
  %*                                 ;
  %do k=1 %to #
    data temp&k (rename = (GROUP_ALL = &&col&k.&&k));
      set Work.B;
      if CODE = "&&value&k";
      drop CODE;
    run;
  %end;
%mend;

/***Create a list of all temporary data sets***/
%macro filelist;
  %*                                        ;
  %****Macro for listing temporary files****;
  %*                                        ;
  %do n=1 %to #
    temp&n
  %end;
%mend;

%subdata

/***Merge all temporary data sets***/
data c;
   merge %filelist;
run;

/***Delete temporary data sets in WORK library***/
proc datasets nolist;
   delete %filelist;
run;
quit;
quit;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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