回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个文件(几十列和数百万行),基本上是这样的:</p>
<pre><code>customerID VARCHAR(11)
accountID VARCHAR(11)
snapshotDate Date
isOpen Boolean
...
</code></pre>
<p>文件中的一条记录可能如下所示:</p>
<pre><code>1,100,200901,1,...
1,100,200902,1,...
1,100,200903,1,...
1,100,200904,1,...
1,100,200905,1,...
1,100,200906,1,...
...
1,100,201504,1,...
1,100,201505,1,...
1,100,201506,1,...
</code></pre>
<p>当账户关闭时,可能会发生两件事。通常,数据中不存在该记录的其他快照。有时会继续添加更多记录,但isOpen标志将设置为0。你知道吗</p>
<p>我想添加一个额外的布尔列,称为“closedInYr”,它的值为0,除非帐户在快照日期后一年内关闭。你知道吗</p>
<p>我的解决方法又慢又恶心。它接受每条记录,在12个月内向前计数,如果它发现一条customerID、accountID和isOpen设置为1的记录,则在“closedInYr”字段中用0填充该记录,否则用1填充该字段。它可以工作,但性能是不可接受的,我们有许多这样的文件处理。你知道吗</p>
<p>关于如何实施这个有什么想法吗?我使用R,但我愿意用Perl、Python或除COBOL或VB以外的任何语言编写代码。你知道吗</p>
<p>谢谢</p>