标题: 如何用程序改字段类型? [打印本页] 作者: shiyiming 时间: 2008-10-28 11:45 标题: 如何用程序改字段类型? 如题,将字符型改为数字型。
data new;
set old ;
income = input(income comma6.2);
run;
这样当然可以,但能否有办法在原来的 data set 上直接改。谢谢。作者: shiyiming 时间: 2008-10-28 14:33 标题: 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;作者: shiyiming 时间: 2008-10-28 21:28 标题: 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;作者: shiyiming 时间: 2008-10-29 14:12 标题: Re: 如何用程序改字段类型? 我试过SQL的程序,如果产生新表table2,就不会出现warning,字段a也改了属性,与data步不一样,这应该是由于data和SQL的产生数据集的一原理不同吧。
Proc SQL;
create table table2 as
select input(a, comma6.) as a
from table1;
quit;作者: shiyiming 时间: 2008-10-29 19:43 标题: Re: 如何用程序改字段类型? 可以将原表的变量重命名成另外一个变量,然后在做转化,是这个意思吗?
data work.a;
set work.a(rename=(a=b));
a= input(b, comma6.2);
drop b;
run;作者: shiyiming 时间: 2008-10-31 06:33 标题: Re: 如何用程序改字段类型? Thank you all for your reply.
Select input(a, comma6.) as a.....
The new A should be a different A.作者: shiyiming 时间: 2008-10-31 11:47 标题: 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?作者: shiyiming 时间: 2008-11-3 07:31 标题: Re: 如何用程序改字段类型? data table3;
set table1;
b=input(a, comma10.);
run;