R 两次约会之间的差异
我有以下data.frame:R 两次约会之间的差异,r,R,我有以下data.frame: employee <- c('John Doe','Peter Gynn','Jolie Hope','Peter') enddate <- c('2010-11-1','2008/3/25','2007-3-14','2007/9/21') startdate<- c('','20010101','20010504','19990221') employ.data <- data.frame(employee, enddate, star
employee <- c('John Doe','Peter Gynn','Jolie Hope','Peter')
enddate <- c('2010-11-1','2008/3/25','2007-3-14','2007/9/21')
startdate<- c('','20010101','20010504','19990221')
employ.data <- data.frame(employee, enddate, startdate)
employee我们可以使用library(lubridate)
它可以采用多种日期格式。在本例中,“enddate”和“startdate”都具有相同的顺序,即ymd
library(lubridate)
employ.data$Diff <- with(employ.data, as.numeric(ymd(enddate)-ymd(startdate)))
employ.data
# employee enddate startdate Diff
#1 John Doe 2010-11-1 NA
#2 Peter Gynn 2008/3/25 20010101 2640
#3 Jolie Hope 2007-3-14 20010504 2140
#4 Peter 2007/9/21 19990221 3134
库(lubridate)
employ.data$Diffemploy.data$enddate
employ.data$enddate <- as.Date(gsub('/','-',employ.data$enddate));
employ.data$startdate <- as.Date(employ.data$startdate,'%Y%m%d');
employ.data;
## employee enddate startdate
## 1 John Doe 2010-11-01 <NA>
## 2 Peter Gynn 2008-03-25 2001-01-01
## 3 Jolie Hope 2007-03-14 2001-05-04
## 4 Peter 2007-09-21 1999-02-21
employ.data$enddate - employ.data$startdate;
## Time differences in days
## [1] NA 2640 2140 3134