|
|
楼主

楼主 |
发表于 2009-9-16 04:50:17
|
只看该作者
如何找数据中某些观测的(有附加条件的)前一个观测并计数
有这样一组数据, 已经按ID 和 date 排好顺序。
ID date A B C Nr
001 2003.12 0 1 1 1
001 2005.9 1 4 1 2
002 2004.12 0 2 1 3
002 2006.3 1 3 0 4
002 2007.12 1 5 0 5
002 2008.12 1 3 0 6
003 2006.6 1 1 0 7
004 2004.12 0 6 1 8
004 2008.12 1 5 0 9
…
…
…
真实数据几十万行,没有 ”Nr”(序号) 这一列,为了叙述方便,加了这一列。
要求:1)如果A=1, 就要找到与这一行相同ID的前一行观测, 如:Nr. 2 的A=1, 它的前一观测应为Nr.1, 又如:Nr. 7 的A=1, 但它没有与它相同ID 的前一观测。
2)如果在第一步中找到的前一观测的B=5, 那么这一观测将忽略不计,而找它的前一观测且B不等于5才算找到。如:Nr. 6 的前一观测应为Nr.5, 而Nr.5的B=5, 所以Nr.6 的前一观测实际应为 Nr.4。
3)按照上面两步的要求全部找到前一观测后,将该观测的C值与前一观测的C值进行比较,C的取值只有0和1,如果两个观测的C相同,那么不计数,如果两个观测的C值不同,就把它算作一个并计数,最后计算出整个数据中一共存在多少个这样的观测(它的C值与前一观测的C值不同)。 |
|