SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 643|回复: 4
打印 上一主题 下一主题

求助format

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-7-18 07:53:45 | 只看该作者

求助format

SAS数据如下:
format from to
$sex               
              1   男
        2   女
$smoke   
              1   是
        2   否
如何通过以上数据集实现
proc format;
value $sex  1="男" 2="女";
value $smoke  1="是" 2="否";
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-7-18 12:24:48 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-7-18 13:04:31 | 只看该作者

Re: 求助format

呵呵 我的意思根据数据集产生format
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-7-18 21:43:46 | 只看该作者

Re: 求助format

没看懂你原数据集的格式,主要是将"from" rename成start,将"to" rename成label,分别定义fmtname为sex和smoke,type为"C",然后用
[code:3b17utjq]
proc format library= cntlin=;
run;
[/code:3b17utjq]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2011-7-18 21:48:50 | 只看该作者

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;
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 05:10 , Processed in 0.068983 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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