我有一个数据帧:
df = data.frame('Id' = c(101, 103, 104, 101, 105, 101, 103, 106, 104),
'action' = c('HIRE', 'Terminate', 'HIRE', 'Terminate', 'Hire', 'Promoted', 'Hire', 'Hire', 'Terminate'),
'date'= c('02/01/2017', '01/23/2019', '05/13/2017', '04/1/2019', '05/22/2017', '08/12/2018', '09/30/2017', '02/11/2017', '12/12/2019'))
我想创建一个新的列,使用雇佣日期和终止日期之间的差异(如果数据中有(来了解一个人在离职前花了多少时间。我是R的新手,如果有任何帮助,我们将不胜感激。
我想过对数据进行分组,但我不确定如何使用这个数据
您可以使用:
library(dplyr)
df %>%
mutate(date = as.Date(date, '%m/%d/%Y')) %>%
group_by(Id) %>%
summarise(time_spent_in_days = as.numeric(difftime(date[action == 'Terminate'],
date[action == 'Hire'], units = 'days')))
# Id time_spent_in_days
# <dbl> <dbl>
#1 101 789
#2 103 480
#3 104 943
假设所有的action
值对于相同的动作具有相同的文本。在您的数据中,您有'HIRE'
和'hire'
。