SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1674|回复: 11
打印 上一主题 下一主题

请教一个关于format的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-5-21 22:34:57 | 只看该作者

请教一个关于format的问题

[color=#BF00BF:3bjxji4d][size=150:3bjxji4d]我有一个数据集,其中一个字段,里面是字符型变量 '1','2','3'...这种

如果我想在这个数据集里面,让 '1' 变成A,'2' 变成B,这种

我不想用赋值语句,想用format 或者 informat 这种

请问可以实现吗?谢谢!

不是输出到外部文件哦,而是就要在这个数据集中,这样更改
[/size:3bjxji4d][/color:3bjxji4d]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-5-21 22:58:27 | 只看该作者

Re: 请教一个关于format的问题

proc format lib=work;
value $tfmt
        '1'='A'
        '2'='B'
        '3'='C'
        ;
run;
*asume the variable is 'a';
data test;
format a $tfmt.;
set test;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-5-22 11:14:55 | 只看该作者

Re: 请教一个关于format的问题

[color=#BF00BF:3ce24pye][size=150:3ce24pye]啊。。。貌似楼上的方法不行啊。。。
[/color:3ce24pye][/size:3ce24pye]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-5-25 14:35:39 | 只看该作者

Re: 请教一个关于format的问题

请允许我顶一下,谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2009-5-26 05:59:07 | 只看该作者

Re: 请教一个关于format的问题

你的问题描述不清楚所以无法回答。

我有一个数据集,其中一个字段(?),里面是字符型变量 (?)'1','2','3'...这种

如果我想在这个数据集里面,让 '1' 变成A,'2' 变成B,这种

我不想用赋值语句(?),想用format 或者 informat 这种

请问可以实现吗?谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2009-6-2 08:43:42 | 只看该作者

Re: 请教一个关于format的问题

proc format ;
value $xfmt
'1'='A'
'2'='B'
'3'='C'
;
run;

data a;
     input x $;
         cards;
1
2
3
;


data a;
        set a;
        x=put(x,$tfmt.);
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2009-6-2 10:18:19 | 只看该作者

Re: 请教一个关于format的问题

to jingju11

[size=150:3bobhdoi][color=#8000BF:3bobhdoi]我有一个SAS数据集,其中一个变量,假如变量名为t,字符型变量,变量的观测值为'1','2','3'...这种

我希望在sas数据集内,让 '1' 变成A,'2' 变成B,注意,不新生成变量,而是直接让t的值改变

而且我不希望用赋值语句,就是if t='1' then s='A'; 我不希望用赋值语句,

因为我有现成的format,但是不知道如何在此运用,请教高手,谢谢![/color:3bobhdoi][/size:3bobhdoi]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2009-6-2 10:28:45 | 只看该作者

Re: 请教一个关于format的问题

POBLE的答案应该是对的呀
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2009-6-2 14:16:59 | 只看该作者

Re: 请教一个关于format的问题

[size=150:289yc6cy][color=#8000BF:289yc6cy]经测试,POBLE 正解![/color:289yc6cy][/size:289yc6cy]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2009-6-8 17:17:46 | 只看该作者

Re: 请教一个关于format的问题

proc format lib=work;
value $tfmt
'1'='A'
'2'='B'
'3'='C'
;
run;
data test;
input x $;
cards;
1
2
3
;
run;
data test;
format x $tfmt.;
set test;
run;
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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