我有一个tbl_df
,其中有两列 StartTime 和 StopTime 。两者都是dttm
。
我想将其格式从"%y-%m-%d %h:%m:%s"
更改为"%y%m%d"
。
我试过
data <- mutate(data, StartTime = ymd(StartTime), StopTime = ymd(StopTime))
但它返回
警告消息:1:所有格式都无法解析。找不到格式。 2:所有格式都无法解析。找不到格式。
我该怎么做?
请不要发送其他不使用lubridate包的问题。
由于
答案 0 :(得分:3)
我认为这应该有用
library(dplyr)
library(lubridate)
df <- data_frame(StartTime1 = "2017-04-28 12:50:45")
df %>% mutate(StartTime2 = ymd_hms(StartTime1),
StartTime3 = as_date(StartTime2))
#> # A tibble: 1 x 3
#> StartTime1 StartTime2 StartTime3
#> <chr> <dttm> <date>
#> 1 2017-04-28 12:50:45 2017-04-28 12:50:45 2017-04-28
答案 1 :(得分:0)
我曾经遇到过一个问题,日期格式类似于:“2019-12-06T09:27:14”。
对我来说 ymd_hms 不起作用,我没有找到合适的解析器,所以解决方案是先用 string_replace 不需要的部分,然后像往常一样解析到日期..(如果需要,丢弃原始列)
your_df %>%mutate(date_published =
str_replace(article.date_published,T\\d\\d\\:\\d\\d\\:\\d\\d', ''),
date_published= ymd(date_published))%>%
select(-contains('article.date'))