Efficiently convert a date column in data.table

后端 未结 4 1023
遇见更好的自我
遇见更好的自我 2020-12-16 21:13

I have a large data set with many columns containing dates in two different formats:

\"1996-01-04\" \"1996-01-05\" \"1996-01-08\" \"1996-01-09\" \"1996-01-10         


        
4条回答
  •  庸人自扰
    2020-12-16 22:15

    Your data

    df <- data.frame(X1 = c("1996-01-04", "1996-01-05", "1996-01-08", "1996-01-09", "1996-01-10", "1996-01-11"), X2 = c("02/01/1996", "03/01/1996", "04/01/1996", "05/01/1996", "08/01/1996", "09/01/1996"), stringsAsFactors=F)
    
    'data.frame':   6 obs. of  2 variables:
     $ X1: chr  "1996-01-04" "1996-01-05" "1996-01-08" "1996-01-09" ...
     $ X2: chr  "02/01/1996" "03/01/1996" "04/01/1996" "05/01/1996" ...
    

    solution

    library(dplyr)
    library(lubridate)
    ans <- df %>%
             mutate(X1 = ymd(X1), X2 = mdy(X2))
    
              X1         X2
    1 1996-01-04 1996-02-01
    2 1996-01-05 1996-03-01
    3 1996-01-08 1996-04-01
    4 1996-01-09 1996-05-01
    5 1996-01-10 1996-08-01
    6 1996-01-11 1996-09-01
    
    str(ans)
    
    'data.frame':   6 obs. of  2 variables:
     $ X1: Date, format: "1996-01-04" "1996-01-05" ...
     $ X2: Date, format: "1996-02-01" "1996-03-01" ...
    

提交回复
热议问题