SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 651|回复: 1
打印 上一主题 下一主题

请教

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-8-28 17:20:42 | 只看该作者

请教

想通过ID和AIA做一个频数分析。但是AIA是字符型变量。想请问一下该怎么办。还有,如果说数据量特别大,假设AIA下面的指标表现有几百个。这种情况怎么办?本人刚刚学习SAS.希望各位多多帮忙。谢谢
ID        A1A
130007        一般
030006        一般
000016        一般
000003        一般
200007        较好
100014        一般
130031        较差
040014        一般
000019        较好
260010        一般
040015        较好
270023        好
000006        一般
000019        一般
340025        较好
130021        较差
0601        一般
110023        好
0614        较差
340023        较好
130006        较差
270030        较好
200033        差
200005        好
030014        较好
050025        一般
120015        较差
120008        好
050004        较好
110021        一般
110001        较好
340009        差
110009        较好
000009        较好
130016        较差
130013        一般
190004        较好
340006        一般
0627        一般
050018        一般
110030        较好
040023        一般
110025        较好
270014        一般
100002        较好
270016        一般
000030        较差
0618        一般
350005        较好
130028        较差
050020        差
050019        差
340028        一般
340026        一般
350003        一般
        好
130020        好
030007        一般
350014        较好
130027        一般
270011        较好
100003        较好
260020        一般
340019        较好
110027        一般
260018        较差
200022        一般
190025        一般
110005        一般
340007        较好
050001        较好
000031        较差
100011        一般
0602        好
190010        较好
120001        较好
000032        较好
350023        较好
200013        较好
190018        好
200010        较好
100007        较好
260012        较好
190009        较好
130029        较差
100017        较好
180001        一般
050002        一般
110014        较好
200020        较好
000014        较好
000001        一般
190017        好
0613        一般
232332        较差
110018        一般
340018        一般
350009        较好
260005        较好
350019        较好
130031        较好
110008        较好
130014        较好
000020        一般
120013        较好
190007        较好
100024        较好
190008        较好
030003        较好
030004        一般
180016        一般
050005        较好
350032        好
110013        一般
0620        较好
130026        一般
100006        较好
100012        好
120018        一般
120019        一般
130010        较好
190013        较好
190014        较好
110028        一般
0607        一般
200025        较好
180009        一般
200023        一般
100010        较好
260029        较好
260031        一般
100012        一般
190027        较好
130004        一般
350007        较好
110004        较差
200021        较好
340004        一般
050031        一般
270029        较好
040016        较好
130005        较好
030016        好
130010        一般
130016        一般
130006        一般
190026        较好
0606        好
200027        一般
130001        一般
120028        一般
110006        较好
030026        一般
190029        较好
180026        一般
0610        一般
340017        一般
120020        一般
200018        一般
000017        较好
000004        一般
050003        好
000015        一般
000002        一般
340022        一般
0611        较好
260022        较好
100028        较好
110026        一般
260027        一般
100027        较好
260030        较好
200009        较差
340010        一般
030018        一般
0617        一般
100018        一般
000021        较好
000008        一般
030008        一般
190028        一般
270017        较好
130012        较好
030023        较好
050008        一般
100023        一般
030029        一般
040005        好
120003        较好
350015        较好
030028        较好
100020        一般
300004        较好
050026        一般
000007        一般
190030        好
000004        较好
100008        较好
130027        一般
050029        一般
0626        较差
030027        一般
050022        一般
340013        一般
340014        一般
180008        一般
100029        一般
130026        一般
000018        一般
200016        一般
040028        较好
0621        一般
000001        较好
000016        较好
000011        一般
030022        较好
040021        好
270010        好
180024        较好
120002        较好
050023        一般
260006        一般
190002        较好
200011        较好
110017        较好
190006        较好
260014        较好
260021        一般
100026        较好
030010        一般
030015        较好
030011        较好
030025        一般
340024        一般
200001        较好
100007        较好
190021        一般
040004        较好
000013        好
040025        好
050007        较好
100022        一般
130021        较好
130019        较好
0624        较好
030019        较好
190022        较好
180028        较好
030021        一般
130009        较差
000029        较好
180014        好
350016        一般
130019        一般
130002        一般
050024        一般
180012        一般
000029        一般
000010        较好
120014        一般
03005        较好
000002        一般
030030        较差
260004        一般
030009        较好
050011        较好
130012        一般
000027        较好
200015        一般
270022        一般
0629        一般
040017        较好
350030        较差
030002        较差
270021        一般
260003        一般
120021        一般
120024        一般
000020        一般
000024        一般
000030        一般
120022        一般
120023        一般
260015        一般
100014        好
200026        一般
050009        较好
130013        一般
100015        较好
350025        一般
270019        较好
260023        较好
270026        好
000026        一般
130011        较好
000013        一般
050028        一般
100009        一般
340008        较好
350024        较好
260025        一般
200028        一般
350008        较好
180003        较好
180004        一般
130015        一般
260019        较好
120012        较好
130025        较差
270018        较好
130032        较差
350027        好
350026        好
100025        好
120016        好
130011        一般
100032        一般
100003        一般
100031        较好
110030        较好
260002        较好
190024        较差
050013        一般
040001        较差
270013        较好
270001        较好
180005        较好
270031        较好
120005        较差
100021        一般
0634        较差
200029        一般
200031        一般
000023        较差
340027        较差
270027        较差
270003        一般
260001        较好
0619        一般
180019        较好
190003        较好
100029        较好
040003        一般
100009        好
0608        较好
0609        较好
110007        较好
040020        较好
270005        较好
350013        一般
260028        较差
040017        一般
100020        一般
0603        一般
100027        一般
130018        一般
180010        一般
0623        一般
270012        一般
000006        一般
100002        一般
260032        一般
040019        较好
040007        一般
190032        较好
130022        较好
180018        较差
270032        好
350020        较好
100016        较好
190011        好
110014        一般
0616        较差
110002        较好
130015        好
270008        较好
110020        较好
190001        较好
050021        一般
100015        较好
040024        一般
260008        一般
100004        一般
200012        较好
100012        一般
100019        较好
130030        一般
350021        一般
350002        一般
100001        一般
0612        较好
050030        一般
100021        一般
260007        一般
350011        较好
340016        好
050006        一般
050016        较好
200002        一般
000007        好
100022        好
100013        较好
130032        较好
340029        一般
050017        一般
000021        一般
000024        一般
100008        一般
0633        一般
200006        较好
260024        较好
120011        一般
120007        一般
180020        一般
222333        较好
110016        较好
180007        一般
030024        较好
180011        较好
350006        较好
350010        较好
200008        一般
000005        好
100019        一般
0615        一般
110003        一般
180023        一般
0630        好
350018        较好
180021        较好
040029        好
040027        较好
100001        较好
200014        一般
100026        一般
270007        较好
270024        较好
100030        一般
260013        一般
0604        较好
0605        较好
270015        一般
000022        较差
340003        较好
030012        一般
030013        较好
000011        一般
110022        较好
190020        较好
040018        较好
260011        较差
130017        较好
120009        一般
000026        较好
030020        一般
270009        较好
0622        一般
130020        好
260009        好
000009        一般
000028        一般
000022        一般
050014        较好
350022        一般
100016        较好
100030        较好
130028        较好
120017        一般
180017        一般
130017        一般
000028        较好
001825        较好
001827        一般
120025        较好
350029        较好
260016        一般
040006        较好
340015        一般
180006        较好
100005        一般
120006        一般
340002        较好
130023        较好
100025        较好
180002        较差
110011        好
030001        较好
130008        一般
130029        较好
100018        较好
350001        一般
000015        较好
030017        较好
130009        一般
270004        较好
000017        较好
270020        较好
270006        好
200019        较好
100024        一般
200017        较好
350017        较好
120026        差
000012        较好
120004        一般
130023        较好
130004        较好
340001        较好
130018        一般
100006        一般
000008        较好
000008        较好
130003        一般
130003        较差
100013        较好
190016        一般
0628        较好
040008        一般
200004        较差
110024        一般
200003        较好
040010        一般
000005        一般
260017        较差
130014        差
000003        较好
040016        较好
100010        较好
100011        较好
100031        较好
100028        好
050015        较好
200024        一般
120027        较好
270028        较好
050027        一般
110010        较好
130005        较好
040002        较好
000018        一般
050010        一般
110012        好
130008        一般
040015        好
000025        较好
200032        较差
040011        一般
000010        较好
190031        较好
190005        较好
0625        较差
190015        较好
130025        较好
000014        一般
040009        一般
000012        差
270025        较好
260026        一般
000025        差
190023        较好
120010        较好
100031        较好
040026        较好
100023        一般
130022        较差
050012        较好
180013        较好
100005        较好
100017        较好
340005        一般
130007        较好
130002        较好
190012        较好
040013        差
130024        较好
340011        较好
200030        差
000023        较好
130001        一般
270002        较好
040022        一般
350012        一般
340020        较好
340021        较好
110018        较好
350031        一般
040012        一般
000027        一般
180022        较好
0631        较好
0632        较好
190019        较好
130024        较好
130030        较好
350028        一般
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-8-28 22:47:09 | 只看该作者

Re: 请教

[code:3jplabrv]%macro chr_to_num(inds,outds,chr_var,keep_chr=yes);
        options nosymbolgen mprint;
        %if %upcase(&keep_chr)=NO %then %do;
                %local varlist;
                %let dsid=%sysfunc(open(&inds,i));
                %syscall set(dsid);
                %let nvar=%sysfunc(attrn(&dsid,nvar));
                %do i=1 %to &nvar;
                        %let varlist=&varlist %sysfunc(varname(&dsid,&i));
                %end;
                %let rc=%sysfunc(close(&dsid));
        %end;
        proc sql;
                create table &chr_var._list as
                        select distinct upcase(&chr_var) as name from &inds;
        quit;
        %if %index(&outds,'.')=0 %then %let outlib=work;
        %else %let outlib=%scan(&outds,1,'.');
        %do i=1 %to 2;
                data &chr_var._fmt;
                        set &chr_var._list;
                        fmtname="&chr_var._fmt";
                        %if &i=1 %then %do;
                                type='c';
                                rename name=start;
                                label=_n_;
                        %end;
                        %else %do;
                                 type='n';
                                start=_n_;
                                rename name=label;
                        %end;
                run;
                proc format library=&outlib cntlin=&chr_var._fmt;
                run;
        %end;
        data &outds;
                set &inds;
                %upcase(&chr_var._num)=input(put(upcase(&chr_var),$&chr_var._fmt.),best8.);
                %if %upcase(&keep_chr)=NO %then %do;
                        drop &chr_var;
                        rename &chr_var._num=%upcase(&chr_var);
                %end;
                format &chr_var._num &chr_var._fmt.;
        run;
        %if %upcase(&keep_chr)=NO %then %do;
                data &outds;
                        retain &varlist;
                        set &outds;
                run;
        %end;
        proc datasets library=work nolist nodetails;
                delete &chr_var._list _temp_raw /memtype=data;
        quit;
        proc catalog cat=&outlib..formats;
                delete &chr_var._fmt /et=formatc;
        quit;
%mend chr_to_num;       

data raw;
        input ID $ A1A $20.;
datalines;
270023 好
000006 一般
000019 一般
340025 较好
130021 较差
0601 一般
110023 好
0614 较差
340023 aaaa
130006 AAaa
270030 较好
200033 差
200005 好
030014 bb
050025 ccccccCCCCcccccccccc
;

%chr_to_num(raw,work.temp,a1a)
/*%chr_to_num(raw,work.temp,a1a,keep_chr=no)*/[/code:3jplabrv]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-5 23:09 , Processed in 0.065862 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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