楼主: mmazz
1405 2

[原创博文] 如何把一个变量分割成多个变量 [推广有奖]

  • 0关注
  • 0粉丝

初中生

14%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
68 点
帖子
9
精华
0
在线时间
9 小时
注册时间
2012-6-9
最后登录
2014-5-24

楼主
mmazz 发表于 2012-6-20 12:25:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
譬如说我有一组变量
group_all
1
2
3
4
5
6

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


多谢啦
二维码

扫码加我 拉你入群

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

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

关键词:多个变量 Group 如何

沙发
冰恋空 发表于 2012-6-20 13:41:17

藤椅
mymine 发表于 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;
已有 1 人评分经验 热心指数 收起 理由
ermutuxia + 100 + 1 热心帮助其他会员

总评分: 经验 + 100  热心指数 + 1   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 14:08