我有一个数据集,大致看起来像这样:
╔════════╦══════════╦══════════╗
║ 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 万行数据。提前致谢!