SAS中文论坛
标题:
变量格式转换问题
[打印本页]
作者:
shiyiming
时间:
2011-5-10 11:25
标题:
变量格式转换问题
代码一:
[code:73sl9m09]proc datasets library=work nolist;
modify zqxx;
informat cjrq yymmdd8.;
format cjrq yymmdd10.;
run;
[/code:73sl9m09]
代码二:
[code:73sl9m09]data a;
informat rq yymmdd8.;
format rq yymmdd10.;
set zqxx;
rq=cjrq;
run;
[/code:73sl9m09]
代码中的 zqxx 数据集是由 excel导进来的,其中 zqxx 中包含的字段 cjrq 的输入输出格式都为字符型长度为16的变量,想要完成的就是把 cjrq 的输入输出格式改为日期型的,方便以后处理!出现的错误有:
代码一:ERROR: 您正试图将 数值 输入格式 YYMMDD 与 字符 变量 cjrq 一起使用。
ERROR: 您正试图将 数值 输出格式 YYMMDD 与 字符 变量 cjrq 一起使用。
代码二:是想重新定义一个变量的格式,然后把值付给新变量(不清楚字符型可不可顺利赋予数值型),程序运行没出现问题,关键在于打开新生成的数据集 a后,日志窗口不停的弹出一行又一行相同的这个错误:ERROR: There was a problem with the format so BEST. was used. 搞不清源头!!
cjrq(成交日期)观测值如下:
20100601
20100602
20100603
....
作者:
shiyiming
时间:
2011-5-10 23:02
标题:
Re: 变量格式转换问题
此问题,已经解决了,借用了intnx函数!
代码如下:
[code:3331fsf3]data z;
format cjrq yymmdd10.;
label cjrq='成交日期';
set zqxx;
cjrq=intnx('day',input(rq,yymmdd10.),0);
run;[/code:3331fsf3]
关键在于代码一和代码二出错的原因不清楚!!
作者:
shiyiming
时间:
2011-5-11 00:26
标题:
Re: 变量格式转换问题
数字变量,你可以改变它的格式,但不可以把数字变量与字符变量直接格式互换。除非你专门定义,通常所有数字变量长度是8。
数字变量=input(字符变量,格式);
字符变量=put(数字变量,格式);
作者:
shiyiming
时间:
2011-5-12 20:54
标题:
Re: 变量格式转换问题
[quote="sun59338":2bt6on9g]数字变量,你可以改变它的格式,但不可以把数字变量与字符变量直接格式互换。除非你专门定义,通常所有数字变量长度是8。
数字变量=input(字符变量,格式);
字符变量=put(数字变量,格式);[/quote:2bt6on9g]
多谢sun59338了!看来确实是自己学糊涂了!
作者:
shiyiming
时间:
2011-5-18 23:26
标题:
Re: 变量格式转换问题
纯粹新手,学到一招。
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2