【发布时间】:2021-12-30 06:03:39
【问题描述】:
我有一个带列的 df
id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
time = c("2020-12-31 16:00:00 PST", "2020-12-31 16:00:00 PST", "2020-12-31 16:00:00 PST", "2020-12-31 16:00:01 PST", "2020-12-31 16:00:01 PST", "2020-12-31 16:00:02 PST", "2020-12-31 16:00:03 PST", "2020-12-31 16:00:03 PST", "2020-12-31 16:00:03 PST", "2020-12-31 16:00:03 PST")
df = data.frame(id, time)
我在原始时间戳列上使用了anytime() 函数来提取时间,因此这些值是双倍的。我想只保留列中的日期并删除时间和时区。例如,时间列中的第一个值将是“2020-12-31”。有没有快速的方法来做到这一点?
原来我在做:
df$'date' = as.character(anytime(df$time))
df = df %>%
mutate(date = str_split_fixed(df$date, " ", 2)) %>%
mutate(date = as.Date(date))
但是,将每个值转换为字符串,然后根据空格进行拆分,然后将日期转换回日期格式需要一段时间(这也会导致维度出现问题,因为数据列仅显示日期,但将该列转换为 as.Date() 显示有问题。有更快的方法吗?谢谢!
【问题讨论】:
-
您发现
anytime可能只是切换到anydate?同样的包装,同样的味道:)