满足条件的行的虚拟变量-R

时间:2019-04-30 06:59:35

标签: r

我希望为合并过程中受到掉期影响的每个投资者股票创建一个虚拟变量。最终,我要完成的工作是根据投资者是自己选择股票还是通过掉期而获得的被动资金来检查出售股票的意愿。

我有两个数据帧。 df1包含投资者列表,他们的股票,日期和投资组合持有量(即,他们在任何时间点持有的股票数量):

输入:

investors   stock   date    inventory
A           1   01/01/1990  100
A           1   02/01/1990  0
A           2   03/04/1995  50
A           2   04/04/1995  100
A           3   02/01/1990  100
A           3   03/01/1990  100
B           1   01/01/1990  50
B           1   02/01/1990  0
B           3   02/01/1990  50
B           3   03/01/1990  50
C           3   02/01/1990  200
C           3   03/01/1990  200

df2包含一个股票互换交易列表(按收购者股票和目标股票划分)以及交易生效的日期:

date        acquirer    target
02/01/1990  3       1

我要做的是找到直接受到股票掉期影响的投资者(即在合并之日,接收了目标股票持有者的收购方股票)。

最终输出应类似于以下内容。由于收购方3与目标1合并,并且投资者A和B在合并之日都持有目标股票,因此从该日起就收到了收购方股票,因此它们会标记在“股票掉期”列中。投资者C即使在合并之日持有收购方股票3,也不会被标记,因为他在合并之日之前没有持有目标股票。

虚拟变量1应该从收购方股票的合并日期开始,并贯穿此投资者/股票组合的所有数据集的剩余部分(例如,对于投资者A,股票3的1990年3月1日之后的所有日期将换股栏中也有1。df1于1996年12月31日结束)

最好能标出合并前的目标日期。即将1分配给收购方股票,将2分配给目标股票。

输出:

investors   stock   date    inventory   stock-swap
A           1   01/01/1990  100         2   
A           1   02/01/1990  0           2   
A           2   03/04/1995  50          0   
A           2   04/04/1995  100         0   
A           3   02/01/1990  100         1
A           3   03/01/1990  100         1
B           1   01/01/1990  50          2   
B           1   02/01/1990  0           2   
B           3   02/01/1990  50          1
B           3   03/01/1990  50          1
C           3   02/01/1990  200         0   
C           3   03/01/1990  200         0   

0 个答案:

没有答案