SAS中文论坛

标题: 请问:怎样做变量值的转换? [打印本页]

作者: shiyiming    时间: 2011-4-7 22:43
标题: 请问:怎样做变量值的转换?
请问,我想把数据的观测替换成一组得分值该用什么proc啊?比如我录入的是1,2,、、、160。我想转成5,6,2,、、、,5这样。SQL和iml都没用过。。。求推荐。。。
作者: shiyiming    时间: 2011-4-7 23:53
标题: Re: 请问:怎样做变量值的转换?
不是很清楚你的意思,你的得分转换有什么规则么?如果没有的话,用proc format吧可能
作者: shiyiming    时间: 2011-4-8 10:07
标题: Re: 请问:怎样做变量值的转换?
有确定的得分的只是我要从1到160都做一个变换,莫非用proc format只能打160行吗。。。
我想有把他们变成一个向量的形式 这样不就可以a向量= b向量了么?
但是SAS里就不会做这个操作了。。
作者: Qiong    时间: 2011-4-8 12:28
标题: Re: 请问:怎样做变量值的转换?
[code:jozdk2uv]

%macro vformat(from, to,length,formatname, formattype);
data vformat;
array a(&length.) (&from);
array b(&length.)  (&to);
do i=1 to &length.;
  informat start   end   label $40. fmtname $32. type $1.;
  start=a(i);
  end=a(i);
  label=b(i);
  fmtname="&formatname.";
  type="&formattype";
  output;
end;
  keep start end label fmtname type;
run;
proc format library=work cntlin= vformat;run;
proc datasets;delete vformat;quit;
%mend;


%let from=1 2 3 4  ;
%let to= 11 22 33 44 ;
%let length=4;
%vformat(&from.,&to.,&length.,score, n);
   
data vv;
informat v1-v2   ;
format v1-v2 score.;
input v1-v2 ;
cards;
1 2
3  4
;
run;
proc print;
run;[/code:jozdk2uv]
作者: shiyiming    时间: 2011-4-10 01:33
标题: Re: 请问:怎样做变量值的转换?
佩服佩服, vicky1020 mm的答案收藏了。




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2