数据是这样的:
第一列是竞价者bidder的ID,每个code对应一个竞价者。
第二列是竞价者出的价格。
第三列是这个竞价结束的时间,我们也可以把一个竞价结束时间看成一个物品,不同竞价结束时间对应不同的物品。
第四列是竞价者出价的时间
竞价者对同一个物品可能会多次出价。
我现在想增加一列lastbid,等于竞价者对同一个物品上一次的出价。
下面是我写的循环。
gen lastbid = .
levelsof enddate, local(tempdate)
foreach i of local tempdate {
xtset biddercode biddate
qui by biddercode: replace lastbid=bid[_n-1] if enddate ==`i'
}
但是结果总是不对,比如红字那行,应该是没有返回值的,因为对应的是一个新物品(结束时间),但是输出结果总是,同一个bidder上一个物品的bid值(-0.041)。这说明循环根本没起作用。不用循环,直接运行 qui by biddercode: replace lastbid=bid[_n-1] 也可以得到同样的结果。哪位大侠能给说说怎么回事吗?我还贴了一张详细一些的excel表。万分感谢!
Bidder Code Bid End Date Bid Date
0 -0.09 30-Sep-04 30-Sep-04
5469 -0.0403 30-Sep-04 21-Oct-04
43594 -0.041 30-Sep-04 27-Oct-04
478 -0.09 31-Dec-04 16-Dec-04
43594 -0.0584 31-Dec-04 8-Nov-04
43594 -0.1177 31-Dec-04 29-Nov-04
43594 -0.1222 31-Dec-04 20-Dec-04
43594 -0.1139 31-Dec-04 20-Jan-05
44775 -0.0654 31-Dec-04 3-Jan-05
71785 -0.0919 31-Dec-04 5-Nov-04
84303 -0.05 31-Dec-04 22-Nov-04
87125 -0.07 31-Dec-04 29-Nov-04
附件列表