楼主: ylblueice
1297 5

求助高手-SAS数据合并问题 [推广有奖]

  • 0关注
  • 0粉丝

小学生

28%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
23 点
帖子
2
精华
0
在线时间
9 小时
注册时间
2011-2-15
最后登录
2013-2-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我想将关系数据合并为事物数据,具体如下:原数据AA:
ID ,NAME,SEX
1     小王    女
2     小李   男
希望合并后的数据cc:
ID  attr
1  ( name_小王,sex_女,....)
2   (name_小李,sex_男,.....)
现在找了一个程序,但是不知道出错在什么地方,请大家指教。感觉出错在红色背景部分,求指教

data cc;

  input id 8. attr $5.;

  cards;

  ;

  run;

  %macro trans;

    %do i=1 %to 2;

    data x&i; set aa;

     keepid x&i;

      datax&i; set x&i;

        ifx&i=0 then attr="x&i"||"_"||'0';

        %do j=1 %to8;

         if x&i=&j then attr="x&i"||"_"||"&j";

        %end;

     proc append base=cc data=x&i force;

    %end;

   %mend;

   %trans;


[img]file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\36172771\QQ\WinTemp\RichOle\M0Z[SUL(_5)4%96}BZ1_IUL.jpg[/img]

二维码

扫码加我 拉你入群

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

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

关键词:求助高手 数据合并 Application documents Settings 程序

沙发
瀚海星云 发表于 2012-11-2 14:31:02 |只看作者 |坛友微信交流群
确实有难度
还是请高手出马吧

使用道具

藤椅
moyunzheng 发表于 2012-11-2 17:22:43 |只看作者 |坛友微信交流群
data aa;
input ID NAME $ SEX $;
cards;
1     小王   女
2     小李   男
;
run;
%macro temp;
%let rc=%sysfunc(open(aa));
data cc(keep=id attr);
length id 8 attr $32766.;
set aa;
attr="("||%do i=2 %to %sysfunc(attrn(&rc.,NVARS));"%sysfunc(VARNAME(&rc.,&i.))"||"_"||strip(%sysfunc(VARNAME(&rc.,&i.)))||","||%end;")";
attr=strip(substr(strip(attr),1,length(strip(attr))-2)||")");
run;
%let rc=%sysfunc(close(aa));
%mend;
%temp;


因为不知道attr的升度,所以使用格式$32766.;

使用道具

板凳
bobguy 发表于 2012-11-3 11:10:15 |只看作者 |坛友微信交流群
Why so complicated?

data tmp;
length ID 8 NAME SEX $10 attr $50;
input ID NAME SEX;
array cvar[*] NAME SEX;
do i=1 to dim(cvar);
   c=catt(vname(cvar[i]),'_',cvar[i]);
   attr=catx(' ', attr, c);
end;
drop i c;
cards;
1 LI M
2 WANG F
;

proc print;run;

使用道具

报纸
moyunzheng 发表于 2012-11-4 15:10:38 |只看作者 |坛友微信交流群
bobguy 发表于 2012-11-3 11:10
Why so complicated?

data tmp;
因为看到变量attr要求是(name_小王,sex_女,....),cards中只举了Name和Sex两个变量,考虑到还有更多的变量且包括字符型和数值型,所以没有考虑用array来做。

使用道具

地板
ylblueice 发表于 2012-11-9 10:22:50 |只看作者 |坛友微信交流群
谢谢,我先尝试一下

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-6 04:41