SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 888|回复: 7
打印 上一主题 下一主题

如何用程序改字段类型?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-10-28 11:45:01 | 只看该作者

如何用程序改字段类型?

如题,将字符型改为数字型。
data new;
     set old ;
     income = input(income comma6.2);
run;

这样当然可以,但能否有办法在原来的  data set 上直接改。谢谢。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-10-28 14:33:24 | 只看该作者

Re: 如何用程序改字段类型?

楼主,不知道你是否把你的程序运行过,你可以试一下以下程序,然后查看table2的a字段和table3的b字段的属性,其实在程序中用同一个名字进行字符和数字的转换,其属性是不会变的,尽管列的数据会变。
data table1;
    filename datalines;
    input a $;
datalines;
20
30
10
;
run;

data table2;
    set table1;
    a=input(a,comma6.2);
run;
data table3;
    set table1;
    b=input(a,comma6.2);
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-10-28 21:28:12 | 只看该作者

Re: 如何用程序改字段类型?

也就是说,要改字段属性,字段名也得改。但我用 PROC SQL,居然可以,虽然也提示不对。

data table1;
input a $;
datalines;
20.3
30.2
10
;
run;

Proc SQL;
   create table table1 as                /*这个 Table1 其实是新的 */
   select input(a, comma6.) as a
       from table1;
quit;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-10-29 14:12:57 | 只看该作者

Re: 如何用程序改字段类型?

我试过SQL的程序,如果产生新表table2,就不会出现warning,字段a也改了属性,与data步不一样,这应该是由于data和SQL的产生数据集的一原理不同吧。
Proc SQL;
create table table2 as
select input(a, comma6.) as a
from table1;
quit;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-10-29 19:43:33 | 只看该作者

Re: 如何用程序改字段类型?

可以将原表的变量重命名成另外一个变量,然后在做转化,是这个意思吗?
data work.a;
set work.a(rename=(a=b));
a= input(b, comma6.2);
drop b;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2008-10-31 06:33:45 | 只看该作者

Re: 如何用程序改字段类型?

Thank you all for your reply.

Select input(a, comma6.) as a.....

The new A should be a different A.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2008-10-31 11:47:45 | 只看该作者

Re: 如何用程序改字段类型?

hello!
did you wake up to the value 10 of variable a in table1 has been changed to 0.1 through by input function?
any improved way to avoid this error?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2008-11-3 07:31:23 | 只看该作者

Re: 如何用程序改字段类型?

data table3;
set table1;
b=input(a, comma10.);
run;

Now b variable is OK.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-5 03:07 , Processed in 0.068724 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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