一列R中的不同日期格式

时间:2019-05-18 06:36:46

标签: r date

我有一列具有不同的日期格式:

我尝试使用anytime函数解决此问题,但第二种格式却不适用。

"countries.1.name": FieldValue.arrayRemove("Ottawa")

反正有这样做吗?

1 个答案:

答案 0 :(得分:0)

编辑-我在使用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)))