全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
990 2
2017-03-10
我的数据集里的a是
2012-08-20
2012-07-21
2012-08-24
2013-08-05T10:00
2012-12-05
2012-01-20T18:30
2012-01-20T18:30
2012-07-02
...
然后我要date9.b
我写的程序如下
复制代码
这样的程序可以产生b但是为什么我改成下面的程序b就出不来
复制代码


二维码

扫码加我 拉你入群

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

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

全部回复
2017-3-10 17:41:44
data m;
  input a$17. @;
  cards;
2012-08-20
2012-07-21
2012-08-24
2013-08-05T10:00
2012-12-05
2012-01-20T18:30
2012-01-20T18:30
2012-07-02
;
data b;
  set m;
  if index(a,'T')>0;
  b=input(scan(a,1,'T'),yymmdd10.);
  format b date9.;
run;
data b2;
  set m;
  if index(a,'T')>0 then b=input(scan(a,1,'T'),yymmdd10.);
  format b date9.;
run;
if then的条件语句没有错,只有if的那个程序输出来的结果少了没有时间的观测。
二维码

扫码加我 拉你入群

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

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

2017-3-10 17:43:03
data m;
  input a$17. @;
  cards;
2012-08-20
2012-07-21
2012-08-24
2013-08-05T10:00
2012-12-05
2012-01-20T18:30
2012-01-20T18:30
2012-07-02
;
data b;
  set m;
  if index(a,'T')>0;
  b=input(scan(a,1,'T'),yymmdd10.);
  format b date9.;
run;
data b2;
  set m;
  if index(a,'T')>0 then b=input(scan(a,1,'T'),yymmdd10.);
  format b date9.;
run;
用if then的结果是对的,只有if的那个结果输出少了没有时间的观测。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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