全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1686 2
2007-12-02

DATA aa;
      INPUT X Y @@;
      
      DATE = INTNX( 'DAY', '25JAN1950'D, _N_-1 );
      FORMAT DATE DATE.;
      cards;
   -0.109  53.8  0.000  53.6  0.178  53.5  0.339  53.5
    0.373  53.4  0.441  53.1  0.461  52.7  0.348  52.4
    0.127  52.2 -0.180  52.0 -0.588  52.0 -1.055  52.4
   -1.421  53.0 -1.520  54.0 -1.302  54.9 -0.814  56.0

;

*以上为第一段

DATA bb;
  SET aa;
    WEEKDAY=WEEKDAY(DATE);
    MONTH=MONTH(DATE);
RUN;
PROC SORT;
  BY DATE WEEKDAY MONTH;
RUN;

*以上为第2段

DATA WEEKEND MONTH;
   SET bb;
   BY DATE MONTH;
   IF WEEKDAY=6 OR WEEKDAY=7 THEN OUTPUT WEEKEND;
   IF FIRST.MONTH=1 OR LAST.MONTH=1 THEN OUTPUT MONTH;/*疑问--〉这行想输出满足if的观测值给month,为何month确显示全部?*/
RUN;

*以上为第3段
PROC PRINT DATA=WEEKEND;
PROC PRINT DATA=MONTH;
RUN;

*请问第三段的 要提取每月的第一天和最后一天的数据集MONTH,为什么显示的是全部的呢?以上代码运行过。

二维码

扫码加我 拉你入群

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

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

全部回复
2007-12-2 16:53:00

~~~~~~~楼下,解决了~

[此贴子已经被作者于2007-12-3 12:54:00编辑过]

二维码

扫码加我 拉你入群

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

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

2007-12-3 09:41:00

把DATE AND MONTH 倒过来就行了。以月份 MONTH为大组,以日子 DATE为小组。

DATA WEEKEND MONTH;
   SET bb;
   BY MONTH DATE;
   IF WEEKDAY=6 OR WEEKDAY=7 THEN OUTPUT WEEKEND;
   IF FIRST.MONTH=1 OR LAST.MONTH=1 THEN OUTPUT MONTH;

RUN;

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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