3
我有以下两个数据集。 我想删除从A与日期的进出时段内落在文件B.SAS - 从另一个文件中间删除一个文件中的行
文件
SEQ ID date var1
1 A12 03JAN04 242
2 A12 01FEB06 356
3 A12 06JAN08 325
4 A12 28DEC09 123
5 B34 06MAY03 985
6 B34 13JUN03 198
7 B34 10MAY05 241
8 C56 09NOV10 155
9 C56 19OCT13 352
文件B
ID date_in date_out
A12 01JAN04 04JAN04
A12 05FEB08 08FEB08
B34 03MAY03 06MAY03
B34 09MAY05 19MAY05
C56 12JUL12 18JUL12
对于线例如,对于ID = A12,他的第一个视频会在01JAN04-04JAN04之内,因此我删除了这个视频,但保留其余部分。
从本质上讲,我应该得到以下结果
SEQ ID date var1
2 A12 01FEB06 356
3 A12 06JAN08 325
4 A12 28DEC09 123
6 B34 13JUN03 198
8 C56 09NOV10 155
9 C56 19OCT13 352
两个文件A和B具有每个ID多条记录,并在出在文件B段之间是不必总是不变的。
我认为在R中,我大概可以通过A中的行编写一个循环,从B中找出与ID匹配的列表,然后从B中循环查看该列表中的日期,看看A中的日期是否属于in-期间。
但我需要在SAS中这样做,所以我对于从哪里开始真的一无所知。我怎样才能在SAS中逐行循环? 例如。我应该写一个循环遍历两个文件的宏吗?或以某种方式使用SQL?
我非常感谢一些关于如何解决这个问题的建议。 谢谢!
非常完美的解决方案!谢谢! – btiger