根据选择性消除和配对组合创建两个变量

时间:2018-11-12 22:27:43

标签: r dplyr plyr tidyr

我有以下格式的数据。数据包含有关三个项目的信息-1,2,3,我想计算到上一年的同事和购买的行程,但是我想消除他在那之前参与的所有项目(仅考虑项目)他不属于其中)。例如,请参见下文:

 id<- c(1,1,2,2,2,3,3)
 person<- c('John','Kevin', 'John', 'Matt', 'Alvin', 'Kevin', 'Alvin')
 trips<- c(4,2,5,2,3,4,5)
 purchase<- c(6,4,3,4,5,5,6)
 join_year<- c(2009,2008,2008,2007,2007, 2008,2008)
 df<- data.frame(id, person, trips, purchase, year)

我想创建两个变量,分别称为pr_trips_colleagues(指上一年)和pr_purchases_colleagues(指上一年)。我想要的最终输出如下:

     person      year          pr_trips_colleagues  pr_purchase_colleagues 
     John        2009                  5             6
     John        2008                  0             0
     John        2007                  0             0
     Kevin       2009                  8             8
     Kevin       2008                  0             0
     Kevin       2007                  0             0
     Matt        2009                  5             6
     Matt        2008                  0             0
     Matt        2007                  0             0
     Alvin       2009                  2             4
     Alvin       2008                  0             0
     Alvin       2007                  0             0 

请提供有关如何获得此建议的建议?非常感谢。

0 个答案:

没有答案