>source

다른 날짜 형식의 열이 있습니다 :

언제나 함수로이 문제를 해결하려고했지만 두 번째 형식으로 NA를 얻습니다.

library(anytime)
dates <- c("2017-01-23 00:00:00.000",
           "2017-1-23 00:00:00.000",
           "20.02.2017 11:15",
           "2.2.2017 11:15")
anytime(dates)
[1] "2017-01-23 CET" "2017-01-23 CET" NA               NA  

어떻게해야합니까?

  • 답변 # 1

    편집- dmy_hms 를 사용하는 데 오타가있었습니다  그것이 dmy_hm 이어야했던 곳 .

    이 접근법은 어떤 형식을 사용해야하는지 문자열에 힌트가 있어야합니다. 여기서는 모든 날짜가 2010 년에서 2019 년 말 사이이고 일-월-년 문자열은 모두 날짜 부분 사이에 점을 사용한다고 가정합니다.

    library(tidyverse); library(lubridate); 
    dates %>% 
      enframe() %>%
      # Edit -- better solution
      mutate(dates = case_when(value %>% str_detect("\\d{4}\\-") ~ ymd_hms(dates), 
                           TRUE ~ dmy_hm(dates)))
    # A tibble: 4 x 3
       name value                   dates              
      <int> <chr>                   <dttm>             
    1     1 2017-01-23 00:00:00.000 2017-01-23 00:00:00
    2     2 2017-1-23 00:00:00.000  2017-01-23 00:00:00
    3     3 20.02.2017 11:15        2017-02-20 11:15:00
    4     4 2.2.2017 11:15          2017-02-02 11:15:00
    
      # old solution
      mutate(dates = case_when(value %>% str_detect(".201") ~ dmy_hm(dates), 
                               TRUE ~ ymd_hms(dates)))
    
    

관련 자료

  • 이전 python - WTForms 동적 선택 필드 목록에 열 헤더를 올바르게 추가하는 방법
  • 다음 google gcp 추적 - 중첩 된 사용자 기능 정보가있는 추적