F**********t 发帖数: 47 | 1 data a;set a;
date1 = MDY(1, 1, 2005);
format date1 YYMMDDN8.; (即使,把这句注释掉以后也不行)
date1 = MDY(1, 1, 2008);
format date1 YYMMDDN8.; (即使,把这句注释掉以后也不行)
IF DATE < date1 THEN DELETE;
IF DATE >= date2 THEN DELETE;
run;
a 表格有2001到2010年之间每个月最后一天的数据。以上代码是要删除2005年以前和
2008年以后的所有数据。可是,得到结果是表格里面没有任何数据了。
log file 里面有说 variable DATE is uninitialized.
但是,我确定变量名是 date, 而且表格a 在当前工作目录下。本来想把表格用附件贴
上来,可是论坛不让。 |
|
F**********t 发帖数: 47 | 2 有人对这种日期格式熟悉吗?
假如有一个变量date, 格式就是 YYMMDDn8.
date
20010331
20010430
20010531
20010630
20010731
20010831
20101130
20101231
如果日期是2005年1月1日之前执行一种操作,日期是2005年1月1日之后,执行另外一种
操作。比较日期大小这段代码怎样写啊。
我试过:
if date < '20050101'd then ...;
if date > '20050101'd then ...;
可是结果不对啊。高手指点一下吧。
谢谢 |
|
s******y 发帖数: 352 | 3 why you need an extra step for creating a M var.
%let Date =%qsysfunc(inputN(01JAN2006,date9), yymmddn8);
%put >&date<;
%let Date =%qsysfunc(putN('01JAN2006'd, yymmddn8));
%put >&date<;
BAOZI please!
out |
|
|
n***p 发帖数: 508 | 5 I kept getting error message when i ran the code below. Can anyone point out
what is wrong? how to modify the code? thanks.
%let Date = 01JAN2006 ;
data _null_;
call symputx("date",left(put(&date,yymmddn8.)));
run; |
|
S****Y 发帖数: 4634 | 6 我一般用
IF date <= MDY(1, 1, 2005) THEN ...; |
|
h*e 发帖数: 10233 | 7 我一般用
IF date <= ‘01-JAN-2005'd THEN ...;
这样比较直观。呵呵 |
|
|
|
w*****8 发帖数: 395 | 10 date is counted as numeric data in SAS.
please use 'dd-mon-yyyy'd format, such as '29-may-2011'd while used in
equation or condition expression. SAS will automatically and correctly
convert this format as date for you. |
|
F**********t 发帖数: 47 | 11 综合大家的帮助,
把代码改为如下,还是不行。
请大家继续帮我看看,
会是什么问题。
谢谢!
data a; (即使这里用新的 dataset 还是不行! 比如: data a2)
set a;
IF DATE < '1-JAN-2005'd THEN DELETE;
IF DATE >= '1-JAN-2008'd THEN DELETE;
run; |
|
F**********t 发帖数: 47 | 12 搞定了,用MDY函数, 和 'dd-mon-yyyy'd format都可以。
出错的原因是,我的代码里面, 有些中文输入模式下写的。
谢谢大家的帮助!
接着问个问题:
如果设 2005年1月31日为 t=0 (单位:月; 表格里的日期几乎是每个月最后一天);
怎样有序地读取 -119 |
|
S****Y 发帖数: 4634 | 13 use macro and intnx function
); |
|
p********a 发帖数: 5352 | 14 I used the following codes. Could you help me to take a look and see what is
wrong? Thanks
%let datestamp=%sysfunc(today(),yymmddn8.);
%let datestamp1=%sysfunc(datetime(),datetime20.);
%let datestamp2=%substr(%sysfunc(tranwrd(&datestamp1,:,_)),1,15);
%put &datestamp1 &datestamp2;
ODS listing close;
ODS tagsets.ExcelXP path = "/sassvr1/test_report" file="sassrv1_at_%bquote(
&work1pct.)._&datestamp2._CST.xls"
style=EGDefault options( autofilter='all' embedded_titles='yes' autofit
_height= 'y... 阅读全帖 |
|