SAS中文论坛

标题: 求助format [打印本页]

作者: shiyiming    时间: 2011-7-18 07:53
标题: 求助format
SAS数据如下:
format from to
$sex               
              1   男
        2   女
$smoke   
              1   是
        2   否
如何通过以上数据集实现
proc format;
value $sex  1="男" 2="女";
value $smoke  1="是" 2="否";
run;
作者: shiyiming    时间: 2011-7-18 12:24
标题: Re: 求助format
you can use the format  or put statement. for example:
[code:3s7922nl]data yours;
input sex $ smoke $;
cards;
1 1
2 2
;
proc format;
value $sex 1="男" 2="女";
value $smoke 1="是" 2="否";
run;
data out1;
set yours;
  S_sex=put(sex,$sex.);S_smoke=put(smoke,$smoke.);
run;
data out2;
  set yours;
  format sex $sex.
         smoke $smoke.;
run;
  [/code:3s7922nl]
作者: shiyiming    时间: 2011-7-18 13:04
标题: Re: 求助format
呵呵 我的意思根据数据集产生format
作者: shiyiming    时间: 2011-7-18 21:43
标题: Re: 求助format
没看懂你原数据集的格式,主要是将"from" rename成start,将"to" rename成label,分别定义fmtname为sex和smoke,type为"C",然后用
[code:3b17utjq]
proc format library= cntlin=;
run;
[/code:3b17utjq]
作者: shiyiming    时间: 2011-7-18 21:48
标题: Re: 求助format
Data yourFmt;

format start end 3. label   FMTName $8.;
input start end babel $ fmtname $;
datalines;
1 1 男 Sexfmt
2 2 女 Sexfmt
1 1 是 smkfmt
2 2 否 smkfmt
;
run;

Proc Format cntlin=yourFmt;
run;

data outdata;
set yourdataset;
newsex=put(sex,$xesfmt.);
smokeChar=put(smoke,$smkfmt.);
run;




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