全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3503 5
2013-10-28
请问sas 里面有没有这样一个函数:可以将字符编码,如可以将一个字符变量转换成一个唯一与之对于的数字变量。我这样做的目的是,因为数字型的变量总是比字符型变量好处理,条件选择的时候更准确。

其实有个类似的函数soundex(),可是它生产的编码也不是数字型的,我要编码是数字型的。多谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2013-10-28 04:03:04
霸气
二维码

扫码加我 拉你入群

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

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

2013-10-28 04:22:11
There is no such a function.

But it can easily done by informat + input function.
二维码

扫码加我 拉你入群

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

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

2013-10-29 16:23:49
bobguy 发表于 2013-10-28 04:22
There is no such a function.

But it can easily done by informat + input function.
如可以,能否给个例子,谢谢啊
二维码

扫码加我 拉你入群

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

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

2013-10-30 06:52:22
edwardzxf 发表于 2013-10-29 16:23
如可以,能否给个例子,谢谢啊
Here is an example.

%macro freqit(lib=work,dsn=, var=);
proc sql noprint;
  select catx(' ', 'table',name,'/out=_tmp_',';')  into: varlist separated by ' '
  from sashelp.vcolumn
  where libname=%UPCASE("&lib") and memname=%UPCASE("&dsn")
        and type='char' and upcase(name)=%UPCASE("&VAR")  ;
  quit;

  proc freq data=&lib..&dsn noprint;
  &varlist
  run;

  data _tmp_;
    set _tmp_ ;
        fmtname="$&var";
    start=&var;
        label=_N_;
  run;
   
  proc format cntlin =_tmp_;
  run;
   
%mend;


%freqit(lib=sashelp,dsn=class,var=sex)

data _null_;
  set sashelp.class;
  put sex= sex= $sex.;
run;
二维码

扫码加我 拉你入群

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

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

2013-10-30 09:01:14
如果你只考虑单个字符的话,转成对应的ascii码就好了
在SAS里可以用rank函数
复制代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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