我有一个约会时间,我正试图剥离和清理。我不确定是否有开箱即用的东西。我做了一些搜索,但找不到任何东西。日期格式为..
2017-01-01T01:36:17.000Z
可重复的例子:
StartDate <- c("2017-01-01T01:36:17.000Z", "2017-01-01T01:36:17.000Z")
Num <- c(1,2)
DataFrame <- data_frame(Num, StartDate)
我通过以下方式修复了它
require(dplyr)
require(tidyr)
require(lubridate)
DataFrame <- DataFrame %>%
separate(StartDate , into = c("NewDate", "tail"), sep = "T") %>%
mutate(NewDate= ymd(NewDate)) %>%
select(-tail)
我想做的是把它变成一个函数,这样我就可以在需要的时候管它。
我想出了以下内容,但未能让它发挥作用。我也尝试过separate_和mutate_的变体。但仍然没有运气。
ztime <- function(df, datecol, newcol) {
library(lubridate)
library(tidyr)
library(dplyr)
df <- df %>%
separate_(datecol, into = c(newcol, "extra"), sep = "T") #%>%
mutate_(newcol = ymd(newcol)) %>%
select(-extra)
}
希望获得一些见解!提前谢谢
答案 0 :(得分:3)
为什么不从lubridate致电as_date
?
dater <- function(x){
lubridate::as_date(x)
}
dater("2017-01-01T01:36:17.000Z")
[1] "2017-01-01"
最佳
科林
答案 1 :(得分:1)
有一个改变游戏规则的包! anytime
library(anytime)
NewDataFrame <- DataFrame %>%
mutate(NewDate = anytime(StartDate))
我总是惊讶于它清理和解释多少
答案 2 :(得分:0)
您只需使用
即可ztime <- function(df, datecol, newcol) {
df[[newcol]] <- lubridate::ymd_hms(df[[datecol]])
}