Alterar o formato de data para “% d /% m /% Y”

Gostaria de alterar o formato da data. Meu quadro de dados é mostrado abaixo e gostaria de alterar todos os formatos de data para "%d/%m/%Y" .

df:

 id bdate wdate ddate 1 09/09/09 12/10/09 2009-09-27 

 df$ddate <- format(as.Date(df$ddate), "%d/%m/%Y") 
 df$ddate<-strftime(df$ddate,"%d/%m/%Y") df$bdate<-strftime(strptime(df$bdate,"%d/%m/%y"),"%d/%m/%Y") df$wdate<-strftime(strptime(df$wdate,"%d/%m/%y"),"%d/%m/%Y") 

A ação padrão R é tratar cadeias de caracteres como fatores. Naturalmente, uma configuração individual pode diferir dos padrões. É uma boa prática alterar os valores das variables ​​para character e, em seguida, convertê-los em date . Eu costumo usar o pacote chron – é legal, simples e o que mais importa, faz o trabalho. A única desvantagem deste pacote é o manuseio de fuso horário.

Se você não tiver o chron instalado, faça:

  install.packages("chron") # load it library(chron) # make dummy data bdate <- c("09/09/09", "12/05/10", "23/2/09") wdate <- c("12/10/09", "05/01/07", "19/7/07") ddate <- c("2009-09-27", "2007-05-18", "2009-09-02") # notice the last argument, it will not allow creation of factors! dtf <- data.frame(id = 1:3, bdate, wdate, ddate, stringsAsFactors = FALSE) # since we have characters, we can do: foo <- transform(dtf, bdate = chron(bdate, format = "d/m/Y"), wdate = chron(wdate, format = "d/m/Y"), ddate = chron(ddate, format = "ymd")) # check the classes sapply(foo, class) # $id # [1] "integer" # $bdate # [1] "dates" "times" # $wdate # [1] "dates" "times" # $ddate # [1] "dates" "times" 

C'est ca ... deve fazer o truque ...