全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3235 17
2014-10-29
悬赏 30 个论坛币 已解决

1

2001/3/27

-5

1

2001/3/28

-4

1

2001/3/29

-3

1

2001/3/30

-2

1

2001/3/31

-1

1

2001/4/1

0

0

1

2001/4/2

1

1

2001/4/3

2

1

2001/4/4

3

1

2001/4/5

4

1

2001/4/6

5

1

2001/4/7

1

2001/4/8

1

2001/4/9

1

2001/4/10






原数据如id date pubdate  ,现在想生成如w的变量,该怎样写

最佳答案

pobel 查看完整内容

proc sql; create table wanted as select l.*, case when abs(l.date-r.date)
二维码

扫码加我 拉你入群

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

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

全部回复
2014-10-29 20:59:41
proc sql;
   create table wanted as
    select l.*,
           case when abs(l.date-r.date)<=5 then (l.date-r.date)
                    else .
                        end as w
                from test as l  left join
                         test(where=(pubdate=0)) as r
                        on l.id=r.id
         order by id,date;
quit;
二维码

扫码加我 拉你入群

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

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

2014-10-30 07:36:33

data wanted;
   merge test
         test(where=(_pubdate=0) rename=(date=_date pubdate=_pubdate));
   by id;
   w=ifn(abs(date-_date)<=5., date-_date, .);
   drop _:;
run;
二维码

扫码加我 拉你入群

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

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

2014-10-30 12:33:51
楼主你好,我也写了一段,请试试看:
复制代码
二维码

扫码加我 拉你入群

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

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

2014-10-30 12:37:51
pobel 发表于 2014-10-30 07:32
proc sql;
   create table wanted as
    select l.*,
5314
5315   data wanted;
5316      merge test
5317            test(where=(_pubdate=0) rename=(date=_date pubdate=_pubdate));
ERROR: WHERE 子句运算符要求兼容的变量。
5318      by id;
5319      w=ifn(abs(date-_date)<=5., date-_date, .);
5320      drop _:;
5321   run;

NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.WANTED 可能不完整。该步停止时,共有 0 个观测和 4 个变量。
WARNING: 数据集 WORK.WANTED 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.00 秒
二维码

扫码加我 拉你入群

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

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

2014-10-30 12:38:22
pobel 发表于 2014-10-30 07:36
data wanted;
   merge test
         test(where=(_pubdate=0) rename=(date=_date pubdate=_pubdate) ...
5322
5323
5324   proc sql;
5325      create table wanted as
5326       select l.*,
5327              case when abs(l.date-r.date)<=5 then (l.date-r.date)
5328                       else .
5329                           end as w
5330                   from test as l  left join
5331                            test(where=(pubdate=0)) as r
5332                           on l.id=r.id
5333            order by id,date;
ERROR: WHERE 子句运算符要求兼容的变量。
5334   quit;
NOTE: 由于出错,SAS 系统停止处理该步。
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.01 秒
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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