2017-06-27 2 views
0

Existe-t-il un moyen rapide de calculer la différence en années entre a) une date (data $ First.Trading.Day) par ex. «2016-02-09» et b) une année (données $ Année de fondation), par ex. « 1999 »R: Comment calculer la différence en années entre une date et une année

je l'ai déjà fait ce qui suit, mais ne soyez pas à un résultat correct:

data$Age <- difftime(data$First.Trading.Day, data$Founding.Year, "years") 

alors je fait une nouvelle colonne avec seulement l'année de la date de négociation d'abord et essayé ceci:

data$First.Trading.Year <- format(as.Date(data$First.Trading.Day),"%Y") 
data$Age <- (data$First.Trading.Year) - (data$Founding.Year) 

cela me donne un message d'erreur

J'apprécierais vraiment un peu d'aide!

+0

ajouter 'as.numeric' avant d'obtenir les différents – Wen

Répondre

0
A=c('2017-01-01','2015-01-01') 
B=c('2016-01-01','2014-01-01') 
data=data.frame(A) 
data$B=B 
data$A <- format(as.Date(data$A),"%Y") 
data$B <- format(as.Date(data$B),"%Y") 
data$Age <- as.numeric(data$A) - as.numeric(data$B) 
data 
    A B Age 
1 2017 2016 1 
2 2015 2014 1 

L'erreur de votre code: Error in (data$A) - (data$B) : non-numeric argument to binary operator

2

Une solution lubridate:

libray(lubridate) 

date <- ymd("2016-02-09", "2012-05-19") 
years_diff <- year(date) - 1999 

# 17 13