楼主: angelfyh
2284 2

[程序分享] SAS里面的时间可以进行减法运算吗? [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

高中生

30%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
133 点
帖子
16
精华
0
在线时间
26 小时
注册时间
2013-8-4
最后登录
2015-4-24

楼主
angelfyh 发表于 2013-8-11 17:28:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位大侠好啊,现在要将每天的24小时,按两小时为一段进行划分,把量变为dummy值,怎么做到呀?我直接采用减法,大家帮看看啊:
if trade_time > 00:00:00 and trade_time < 02:00:00 then tradetime1 = 1;
    else tradetime1 = 0;
  if trade_time > 02:00:00 and trade_time < 04:00:00 then tradetime2 = 1;
    else tradetime2 = 0;
  if trade_time > 04:00:00 and trade_time < 06:00:00 then tradetime3 = 1;
    else tradetime3 = 0;
  if trade_time > 06:00:00 and trade_time < 08:00:00 then tradetime4 = 1;
    else tradetime4 = 0;
  if  trade_time > 08:00:00 and trade_time < 10:00:00 then tradetime5 = 1;
    else tradetime5 = 0;
    if  trade_time > 10:00:00 and trade_time < 12:00:00 then tradetime6 = 1;
    else tradetime6 = 0;
    if trade_time > 12:00:00 and trade_time < 14:00:00 then tradetime7 = 1;
    else tradetime7 = 0;
  if trade_time > 14:00:00 and trade_time < 16:00:00 then tradetime8 = 1;
    else tradetime8 = 0;
  if trade_time > 16:00:00 and trade_time < 18:00:00 then tradetime9 = 1;
    else tradetime9 = 0;
  if trade_time > 18:00:00 and trade_time < 20:00:00 then tradetime10 = 1;
    else tradetime10 = 0;
  if  trade_time > 20:00:00 and trade_time < 22:00:00 then tradetime11 = 1;
    else tradetime11 = 0;
    if  trade_time > 22:00:00 and trade_time < 24:00:00 then tradetime12 = 1;
    else tradetime12 = 0;
运行出现错误,怎么实现这个呢?非常感谢大家啊

二维码

扫码加我 拉你入群

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

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

关键词:Trade Dummy time else Then

沙发
yangdelong1988 发表于 2013-8-11 19:30:03
时间好像不可以比较大小的,而且上面那个程序好像逻辑有错误,既然00:00:00到02:00:00为1了,其它为0,后面的语句就没有意思了。
既然是把时间分成12个类,直接用format语句,先把时间这个变量的格式设为best,时间就变成数字了,02:00:00就变成了7200秒了,以后的时间同理;
proc format;
value shijian low-<7200='a'
            7200-<14400='b'
            14400-<21600='c'
            21600-<28800='d'
            。。。。。。。。
;
run;
data XX;
set YY;
format time shijian.;
run;
这样就可以将时间分为12类了

藤椅
angelfyh 发表于 2013-8-13 17:31:14
yangdelong1988 发表于 2013-8-11 19:30
时间好像不可以比较大小的,而且上面那个程序好像逻辑有错误,既然00:00:00到02:00:00为1了,其它为0,后面 ...
非常感谢你,后来采用HMS函数把时间进行了转化,其实目的是想把每天24小时每隔两个小时变成dummy量,方便后面的逻辑回归,这样子正确吗?

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

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