楼主: 柳如清风
1868 2

[问答] IML中如何读取时间格式(已解决) [推广有奖]

  • 0关注
  • 1粉丝

大专生

15%

还不是VIP/贵宾

-

威望
0
论坛币
15 个
通用积分
0
学术水平
2 点
热心指数
1 点
信用等级
0 点
经验
404 点
帖子
32
精华
0
在线时间
47 小时
注册时间
2012-3-7
最后登录
2021-3-24

楼主
柳如清风 发表于 2012-7-16 11:13:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在data step中可以用 input("14:59:00",time.) 来读入一个时间格式的值,以下语句可以运行。
  1. data a;
  2. input sastime a;
  3. cards;
  4. 38100 0
  5. 51840 0
  6. 53940 0
  7. 53940 0
  8. ;
  9. data b;
  10. set a;
  11. if sastime<input("14:59:00",time.) then a=1;
  12. run;
复制代码
但是如果用IML实现时,input函数报错。
  1. proc iml;
  2. use work.a;
  3. read all into iml1;
  4. mattrib iml1 colname={'sastime' 'a'};
  5. do i=1 to 4;
  6. if iml1[ ,'sastime']<input("14:59:00",time.) then iml1[i,'a']=1;*这样写报错;
  7. /*if iml1[i,'sastime']<53940 then iml1[i,'a']=1;*这样写不报错;*/
  8. end;
  9. print iml1;
  10. quit;
复制代码
错误为: if iml1[ ,'sastime']<input("14:59:00",time.) then iml1[i,'a']=1;
                                            ------
                                            22   200
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant,
              a missing value, (, ), +, ',', -, ^, {.

14:59:00是一个可变的值,如果每次都先找sas时间格式中对应的值53940会很麻烦。
请问如何在IML中读取hh:mm:ss格式的值,谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:已解决 Data step Input cards Data 时间 如何

沙发
playmore 发表于 2012-7-16 14:20:40
你把input("14:59:00",time.) 改成'14:59:00't试试
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

藤椅
柳如清风 发表于 2012-7-16 16:56:49
playmore 发表于 2012-7-16 14:20
你把input("14:59:00",time.) 改成'14:59:00't试试
可以了,十分感谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 15:06