全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1639 5
2011-11-08
悬赏 10 个论坛币 未解决
请教各位达人:
        我想让时间在2010年前的输出格式为“年",之后的为“月”,当使用了条件语句就报错,大家帮帮我啊!
    proc report data=total nowd;
column rdate num;
define rdate/group ;
if rdate<mdy(01,01,2010) then format rdate year.;else
format rdate yymm.;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-11-8 19:59:07
首先这样写程序是不对的,IF-THEN语句是DATA STEP语句,在PROC 步里面是不能运行的。要解决你的问题,我给你提供一个可行的思路:

在PROC REPORT的COMPUTE 语句(里面可以写IF语句)利用CALL DEFINE.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-8 23:13:28
You can either compute (format) the date in REPORT (as LS pointed out) or assign format by FORMAT procedure
JingJu
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-8 23:50:49
学习了。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-9 09:20:16
jingju11 发表于 2011-11-8 23:13
You can either compute (format) the date in REPORT (as LS pointed out) or assign format by FORMAT pr ...
非常感谢!真是高手呀!
我执行你给我的程序后是这种效果:
2005
2005
2005
2006
2006
……
如果我想让都是相同日期的合并,
就是想达到这种效果
2005
2006
2007
2008
2009
2010.01
2010.02
……
该怎么做呢,我前面有define date/group,咋就不行呢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-10 20:51:52
jingju11 发表于 2011-11-8 23:13
You can either compute (format) the date in REPORT (as LS pointed out) or assign format by FORMAT pr ...
才准备评最佳的呢,怎么一看答案都变的不全了呀
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群