2016-11-09 4 views
0

Je veux changer toutes les dates 2006-04-11 dans mes données en 2006-04-01. J'ai converti la variable date en un facteur, recodé 2006-04-11 au 2006-04-01, et reconverti la variable en classe = date. Le recode fonctionne pendant que la variable est un facteur (toutes les dates du 2006-04-11 sont changées en 2006-04-01), mais après la reconversion en classe = date, les variables apparaissent à nouveau comme 2006-04- 11.recoder des dates précises en R

Convertissez la variable de date en facteur et vérifiez qu'elle a bien fonctionné.

data$review_date<-as.factor(data$review_date) 
class(data$review_date) 

variable facteur de Recode à la date que je veux (2006-04-01) et afficher des données.

recode_factor(data$review_date, '2006-04-11' = "2006-04-01") 
data$review_date 

Convertit une variable du facteur retour à la date, vérifie la classe et affiche les données. Alternativement, je serais prêt à laisser tomber la partie jour de toutes les dates entièrement, mais je n'ai pas compris comment faire cela.

+0

Quant à la dernière ligne sur les jours laissant tomber complètement - voir 'yearmon' du paquet' zoo' qui stocke année/mois date objets. – thelatemail

Répondre

2

recode_factor() ne met pas à jour les valeurs dans data. Vous devez réaffecter les résultats comme suit:

data$review_date <- recode_factor(data$review_date, '2006-04-11' = "2006-04-01") 

... pour pouvoir remplacer les valeurs d'origine.

L'ensemble du processus peut aussi être une simple opération de remplacement. Par exemple:

data <- data.frame(review_date = as.Date(c("2006-04-11","2001-01-01"))) 
data$review_date[data$review_date == "2006-04-11"] <- "2006-04-01" 

(oui, cela donnera une variable de classe Date appropriée)

+0

ajoutant dans les données $ avis <- résolu mon problème, merci! – nusbaume