【发布时间】:2014-07-14 15:42:44
【问题描述】:
我有一个数据集,大致如下:
╔════════╦══════════╦══════════╗
║ TICKER ║ DAY ║ TIME ║
╠════════╬══════════╬══════════╣
║ AET ║ 20100104 ║ 09:30:04 ║
║ AET ║ 20100104 ║ 09:30:04 ║
║ AET ║ 20100104 ║ 09:30:04 ║
║ AET ║ 20100104 ║ 09:30:05 ║
║ AET ║ 20100104 ║ 09:30:05 ║
║ AET ║ 20100104 ║ 09:30:06 ║
║ AET ║ 20100104 ║ 09:30:06 ║
║ AET ║ 20100104 ║ 09:30:06 ║
╚════════╩══════════╩══════════╝
我想要添加一个额外的列,如果它不是该时间的最后一次观察,则表示值 0,如果它是该时间的最后一次观察,则表示 1。因此我想添加以下列:
╔════════╦══════════╦══════════╦═══════╗
║ TICKER ║ DAY ║ TIME ║ dummy ║
╠════════╬══════════╬══════════╬═══════╣
║ AET ║ 20100104 ║ 09:30:04 ║ 0 ║
║ AET ║ 20100104 ║ 09:30:04 ║ 0 ║
║ AET ║ 20100104 ║ 09:30:04 ║ 1 ║
║ AET ║ 20100104 ║ 09:30:05 ║ 0 ║
║ AET ║ 20100104 ║ 09:30:05 ║ 1 ║
║ AET ║ 20100104 ║ 09:30:06 ║ 0 ║
║ AET ║ 20100104 ║ 09:30:06 ║ 0 ║
║ AET ║ 20100104 ║ 09:30:06 ║ 1 ║
╚════════╩══════════╩══════════╩═══════╝
我正在使用 SAS Enterprise Guide,但不知道如何比较第 1 行的值和第 2 行的值。我基本上想要做的是创建一个如下所示的表达式:
IF TIME = TIME(row+1)
THEN 0
ELSE 1
我不知道这在 SAS 企业中是否可行。我对此完全陌生,我在 Excel 中做这样的事情没有问题。 Excel 不能很好地处理 1700 万行数据。提前致谢!
【问题讨论】:
标签: sas enterprise-guide